列表索引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];
}
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()