2011-12-05 82 views
0

我有兩份名單,我想將數據從一個到另一個複製和我得到這個錯誤:列表索引錯誤:索引超出範圍

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

這裏是我的代碼:

static IList<Common.Data.Driver> Stt_driverList = new List<Common.Data.Driver>(); 
List<Common.Data.Driver> driverList = new List<Common.Data.Driver>(); 

for (int i = 0; i < driverList.Count; i++) 
{ 
    //Fill in The Static Driver List 
    Stt_driverList[i] = driverList[i]; 
} 

回答

1

Stt_driverList當您開始循環時不包含任何項目,因此您無法通過索引引用元素。嘗試使用Add方法代替:

static IList Stt_driverList = new List(); 
IList driverList = new List(); 
for (int i = 0; i < driverList.Count; i++) 
{ 
    //Fill in The Static Driver List 
    Stt_driverList.Add(driverList[i]); 
} 
+0

它的工作,謝謝很多。 –

0

你應該使用Stt_driverList.Add(...),也可以看看函數AddRange()。

1

您不能使用索引器來增加列表的大小;只修改現有條目。你可以使用Add ... ...但是這將是簡單的只是整個列表複製一氣呵成:

Stt_driverList = new List<Common.Data.Driver>(driverList); 

這構造方法僅執行在一個單一的通話淺表副本。

如果這不是你想要的,那麼可能仍然有一個明確避免循環的好方法 - 給我們更多的細節,我們可能會幫助你更多。