2012-05-12 41 views
0

我正在学习C#,并且正在做一个使用对象列表的任务。我想如果我插入一个新的对象,与list.insert(索引,对象)在一个已经是一个对象的位置,前置对象被替换!?在插入新对象之前需要从列表中删除对象?

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

回答

5

Insert Method插入根据需要指定索引处的新项目,使空间:

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" 

参见:Indexers (C# Programming Guide)

+0

行,列表[1] = “foo” 的;更好!谢谢! –

3

这是正确的。

但是,如果你想要一个指定索引处替换列表中的项目,为什么不

list[index] = newitem;