0

我正在学习 C#,并且正在执行一项使用对象列表的任务。我想如果我插入一个新对象, list.insert(index, object) 在它已经是一个对象的位置,前一个对象被替换了!?

但似乎我必须先用 list.removeAt(index) 删除它,然后才能插入新的,否则它只是被添加,旧的留在列表中。这是正确的还是我做错了什么?

4

2 回答 2

5

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# 编程指南)

于 2012-05-12T08:53:40.080 回答
3

这是对的。

但是,如果您想替换列表中指定索引处的项目,为什么不直接

list[index] = newitem;
于 2012-05-12T08:53:27.697 回答