列表索引Err:索引超出范围

本文关键字:索引 范围 Err 列表 | 更新日期: 2023-09-27 18:16:44

我有两个列表,我想把数据从一个复制到另一个,我得到这个错误:

索引超出范围。必须非负且小于集合的大小。
参数名称: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]; 
}

列表索引Err:索引超出范围

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]);
}

你不能使用索引器来增加列表的大小;仅用于修改现有条目。你可以用Add代替…但是直接复制整个列表会更简单:

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

构造函数只在一次调用中执行浅拷贝。

如果这不是你想要的,可能还有一种避免显式循环的好方法——给我们更多的细节,我们也许能帮助你更多。

您应该使用Stt_driverList.Add(…),还可以看看函数AddRange()