c# - 为什么列表的插入方法不覆盖指定索引上的项目?

标签 c#

要么我在这里遗漏了一些非常明显的东西,要么就是问题所在。

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;

如果索引不存在(使用 AddInsert)

关于c# - 为什么列表的插入方法不覆盖指定索引上的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34184638/

相关文章:

c# - ASP.Net WebApi : How to load additional controllers at runtime

c# - 生日日期的正则表达式 asp.net

c# - 如何配置 Visual Studio 2008 以在反汇编窗口中显示真实的 EIP 地址?

c# - 异步方法中的信号量等待与 WaitAsync

c# - MVC Razor View 表中的文本不会在选择复选框时更新

c# - 使用 Mono 4.3.3 在 Debian/Jessie 上构建 MonoDevelop

c# - 如果作为单独的任务启动,有没有办法取消 Parallel.ForEach 循环

c# - 在 WPF 中创建一个菜单栏?

c# - 如何在 C# 和 TPL 中并行处理事件

c# - 如何通过 httpresponse 读取以获取返回值 :