2012-05-12 40 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;