使用for循环,我如何填充lambda的条件?

时间:2014-05-22 13:11:15

标签: c# asp.net .net linq lambda

我有动态数据列表。我想遍历列表来创建一个where子句。我怎么做?

IQueryable<MyObject> result = originalData;
foreach (var item in Years)
{
    result = input.Where(x => x.Year == item).AsQueryable();
}

2013应该有30和2014应该有18.我的结果只有18当它应该是48.任何想法?

修改

我应该提到我知道我会覆盖结果。我试过+ =然后我得到的错误是&#39; + =&#39;不能应用于IQueryable的操作数(MyObject&gt;和IQueryable(MyObject&gt;

1 个答案:

答案 0 :(得分:2)

您不需要for循环,您可以这样做:

IQueryable<MyObject> result = input.Where(x=> Years.Contains(x.Year));

目前,您的result持有循环的最后一个值。因此,假设您Years中的最后一个值是2014,那么您将返回18行,之前的行将在迭代中被覆盖。