Lambda表达式,其中列等于列表项

时间:2012-11-01 13:19:33

标签: c# linq lambda

我的一般结果包含不同的列,包括 id 列。我还有一个List,其中包含一组 id 。我希望获得List项(ID)与 Id 列值匹配的结果。

我尝试在循环中执行此操作:

foreach(int Uid in idList)
{
    queryResults = queryResults.Where(security => security.id== Uid);
}  

但是这给了我 queryResults 中的单个记录,这是针对List中的最后一个 Uid 。我想要的是,列表中所有 Uid 的记录应该在 queryResults 中。

1 个答案:

答案 0 :(得分:7)

您需要将每个项目的ID与idList中存储的ID相匹配。这可以通过Where上使用的queryResult - 扩展程序与Contains上使用的idList方法结合使用来实现:

var idList = new List<int>{1, 2, 3, 4} // This is your list holding the ids
var result = queryResult.Where(security => idList.Contains(security.SecuritiesId));

这会检查queryResult的每个项目,SecuritiesId是否包含在包含相关ID的列表中。