我有动态数据列表。我想遍历列表来创建一个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;
)答案 0 :(得分:2)
您不需要for
循环,您可以这样做:
IQueryable<MyObject> result = input.Where(x=> Years.Contains(x.Year));
目前,您的result
持有循环的最后一个值。因此,假设您Years
中的最后一个值是2014,那么您将返回18行,之前的行将在迭代中被覆盖。