我想使用简单的for循环遍历模型。但它给了我编译错误。任何人都能说出这里有什么不对吗?
List<EmpModel> models = new List<EmpModel>();
....
....
for loop (....)
{
emp.name = "somename";
emp.agg = 20;
emp.add ="some add";
models.Add(emp);
}
for (int i = 1; i < models.Count(); i++)
{
EmpModel m1, m2;
m1 = models.IndexOf(i - 1);
m2 = models.IndexOf(i);
CompareModels(m1, m2);
}
答案 0 :(得分:0)
您必须为IndexOf使用EmpModel
参数,因为您的列表使用EmpModel
作为类型。参考:https://msdn.microsoft.com/en-us/library/e4w08k17(v=vs.110).aspx
如果要在for循环中执行此操作,可以使用迭代器并使用重载的Select()
方法:
List<EmpModel> models = new List<EmpModel>();
...
var tempList = models.Select((v,i) => new {val = v, idx = i});
for(int i = 1; i < tempList.Count(); i++)
{
EmpModel m1, m2;
m1 = models.FirstOrDefault(x => x.index = i-1);
m2 = models.FirstOrDefault(x => x.index = i);
CompareModels(m1, m2);
}
答案 1 :(得分:0)
谢谢,使用m1 = models [i-1]和m2 = models [i]解决了编译问题。