我正在尝试在for循环中添加一个列表。
这是我的代码 我在这里创建了一个属性
public class SampleItem
{
public int Id { get; set; }
public string StringValue { get; set; }
}
我想从其他列表中添加值
List<SampleItem> sampleItem = new List<SampleItem>(); // Error: Index out of range
for (int i = 0; i < otherListItem.Count; i++)
{
sampleItem[i].Id = otherListItem[i].Id;
sampleItem[i].StringValue = otherListItem[i].Name;
}
请有人纠正我的代码。
答案 0 :(得分:5)
您的索引超出范围,因为当sampleItem[i]
没有项目时您指的是sampleItem
。您必须Add()
项目......
List<SampleItem> sampleItem = new List<SampleItem>();
for (int i = 0; i < otherListItem.Count; i++)
{
sampleItem.Add(new SampleItem {
Id = otherListItem[i].Id,
StringValue = otherListItem[i].Name
});
}
答案 1 :(得分:0)
List<SampleItem> sampleItem = new List<SampleItem>(); // Error: Index out of range
for (int i = 0; i < otherListItem.Count; i++)
{
sampleItem.Add(new sampleItem()); // add this line
sampleItem[i].Id = otherListItem[i].Id;
sampleItem[i].StringValue = otherListItem[i].Name;
}
答案 2 :(得分:0)
List
必须为Add
;如果尚未创建索引项目,则不能将其设置为值。你需要这样的东西:
List<SampleItem> sampleItems = new List<SampleItem>();
for (int i = 0; i < otherListItem.Count; i++)
{
SampleItem si = new SampleItem
{
Id = otherListItem[i].Id,
StringValue = otherListItem[i].Name
};
sampleItems.Add(si);
}
答案 3 :(得分:0)
List<SampleItem> sampleItem = new List<SampleItem>();
foreach( var item in otherListItem)
{
sampleItem.Add(new SampleItem { Id = item.Id, StringValue = item.Name});
}
答案 4 :(得分:0)
在你的for循环中尝试用这样的东西替换你所拥有的东西:
SampleItem item;
item.Id = otherListItem[i].Id;
item.StringValue = otherListItem[i].StringValue;
sampleItem.add(item);
答案 5 :(得分:0)
使用
List<SampleItem> sampleItem = (from x in otherListItem select new SampleItem { Id = x.Id, StringValue = x.Name }).ToList();
答案 6 :(得分:0)
执行以下操作:
List<SampleItem> sampleItem = new List<SampleItem>();
for (int i = 0; i < otherListItem.Count; i++)
{
sampleItem.Add(new SampleItem {Id= otherListItem[i].Id, StringValue=otherListItem[i].Name});
}
答案 7 :(得分:0)
您收到错误,因为您从未向sampleItem列表添加任何项目。
更好的方法是使用Linq(未经测试)
var sampleItem = otherListItem.Select(i => new SampleItem { Id= i.Id, StringValue = i.Name}).ToList();
答案 8 :(得分:0)
//使用system.linq;
otherListItem.ToList().Foreach(item=>{
sampleItem.Add(new sampleItem{
});
答案 9 :(得分:0)
它发生在我身上,因为我在Mapper类中映射了两次列。 在我的情况下,我只是分配列表元素。 例如
itemList item;
ProductList product;
item.name=product.name;
item.price=product.price;