使用for循环,如何填充一个lambda where条件?

本文关键字:一个 lambda 条件 where 填充 循环 for 何填充 使用 | 更新日期: 2023-09-27 18:04:41

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

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

2013应该有30个,2014应该有18个。我的结果只给出了18,而应该是48。什么好主意吗?

编辑

我应该提到我知道我重写了结果。我尝试+=,我得到的错误是'+='不能应用于IQueryable(MyObject>和IQueryable(MyObject>

使用for循环,如何填充一个lambda where条件?

的操作数

您不需要for循环,您可以:

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

当前您的result保存循环的最后一个值。所以假设你在Years中的最后一个值是2014,然后你得到18行,之前的行在迭代中被覆盖。