我有两个列表,我想将数据从一个复制到另一个,我收到此错误:
指数超出范围。必须是非负数且小于集合的大小。
参数名称: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];
}
答案 0 :(得分:1)
您不能使用索引器来增加列表的大小;仅修改现有条目。您可以使用Add
代替......但只需一次复制整个列表就更简单了:
Stt_driverList = new List<Common.Data.Driver>(driverList);
该构造函数只在一次调用中执行浅拷贝。
如果这不是您想要的,那么可能仍然有一种避免明确循环的好方法 - 给我们提供更多详细信息,我们可以为您提供更多帮助。
答案 1 :(得分: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]);
}
答案 2 :(得分:0)
你应该使用Stt_driverList.Add(...),也看一下AddRange()函数。