要么我在这里遗漏了一些非常明显的东西,要么就是问题所在。
List<> 的 Insert 方法在指定索引上添加另一个项目但不覆盖它。
actionsIds.Insert(0, "item1");
actionsIds.Insert(1, "item2");
actionsIds.Insert(0, "item3");
MessageBox.Show(actionsIds.Count.ToString());
我得到 count = 3..为什么它不覆盖它或者它实际上不是为了这个目的?
最佳答案
Insert
( https://msdn.microsoft.com/en-us/library/sey5k5z4(v=vs.110).aspx ) 在指定的索引处添加一个新项目,如果您需要替换特定索引处的项目,那么您应该使用索引器属性 ( https://msdn.microsoft.com/en-us/library/0ebtbkkc(v=vs.110).aspx )。
actionsIds[0] = "item1";
这样做时,需要保证索引存在,否则会引发异常。如果您不确定相关索引是否存在,可以通过检查 Count
来实现。
if (index >= 0 && index < actionsIds.Count)
actionsIds[index] = item;
如果索引不存在(使用 Add
或 Insert
)
关于c# - 为什么列表的插入方法不覆盖指定索引上的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34184638/