MVC迭代模型会产生编译错误

时间:2015-02-17 10:10:20

标签: asp.net-mvc

我想使用简单的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);
        }

2 个答案:

答案 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]解决了编译问题。