我正在学习 C#,并且正在执行一项使用对象列表的任务。我想如果我插入一个新对象, list.insert(index, object) 在它已经是一个对象的位置,前一个对象被替换了!?
但似乎我必须先用 list.removeAt(index) 删除它,然后才能插入新的,否则它只是被添加,旧的留在列表中。这是正确的还是我做错了什么?
我正在学习 C#,并且正在执行一项使用对象列表的任务。我想如果我插入一个新对象, list.insert(index, object) 在它已经是一个对象的位置,前一个对象被替换了!?
但似乎我必须先用 list.removeAt(index) 删除它,然后才能插入新的,否则它只是被添加,旧的留在列表中。这是正确的还是我做错了什么?
Insert 方法在指定索引处插入一个新项目,根据需要腾出空间:
list.Insert(1, "foo");
// Before After
//
// list[0] == "a" list[0] == "a"
// list[1] == "b" list[1] == "foo"
// list[2] == "c" list[2] == "b"
// list[3] == "c"
如果要替换指定索引处的项目,可以使用列表的indexer:
list[1] = "foo";
// Before After
//
// list[0] == "a" list[0] == "a"
// list[1] == "b" list[1] == "foo"
// list[2] == "c" list[2] == "c"
另请参阅: 索引器(C# 编程指南)
这是对的。
但是,如果您想替换列表中指定索引处的项目,为什么不直接
list[index] = newitem;