c# - Lambda 表达式,其中列等于列表项

标签 c# linq lambda

我有一个包含不同列的一般结果,包括 id 列。我还有一个 List,它有一组 id。我想获得 List item(id) 与 Id 列值匹配的结果。

我试着在一个循环中这样做:

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

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

最佳答案

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

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 的列表中。

关于c# - Lambda 表达式,其中列等于列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13177967/

相关文章:

java - 如何在 Kotlin 中将函数式接口(interface)操作作为参数传递?

scala - 使用Java库的Scala,利用Java 8中的lambda表达式支持

c# - 使用 C# 的 MongoDb 响应缓慢

c# - 如何在 MVC 中将文本框\输入值从 View 传递到 Controller

c# - 使用 BindingNavigator 时从 DataGridView 中的单元格获取值到 TextBox

c# - 可以在比 O(n^2) 时间更好的时间内做到这一点吗?

c# - 如何使用 LINQ 在 XML 中按名称获取多个元素

linq - 使用 LINQ 在子查询中高级多重联接

java - 如何使用 Java 8 Lambda 表达式将一种类型的列表转换为其子类型的列表

c# - 如何修改 IObservable<char> 以便我收集字符,直到一段时间内没有字符为止?