linq - 解释下面的 Linq 查询?

标签 linq linq-to-sql

results.Where(x=>x.Members.Any(y=>members.Contains(y.Name.ToLower())

我碰巧在网上看到这个查询。谁能解释一下这个查询。

为这个新手推荐一个好的 LINQ 教程。

谢谢大家

编辑:

x 和 y 代表什么?

最佳答案

  • xresults 中元素类型的单个结果顺序。
  • y是单个成员,属于 x.Members 中元素的类型顺序。

这些是 lambda 表达式 ( x => x.whatever ),通过 C# 3 引入到语言中,其中 x是输入,右侧 ( x.whatever ) 是输出(在这个特定的使用场景中)。

一个更简单的例子

var list = new List<int> { 1, 2, 3 };
var oddNumbers = list.Where(i => i % 2 != 0);

在这里,i是单int作为表达式输入的项目。 i % 2 != 0是一个 bool 表达式,评估输入是偶数还是奇数。整个表达式 ( i => i % 2 != 0 ) 是一个谓词,一个 Func<int, bool> ,其中输入是整数,输出是 bool 值。跟随?当您遍历查询时 oddNumbers , list 中的每个元素序列根据谓词进行评估。那些通过的将成为您输出的一部分。

foreach (var item in oddNumbers)
    Console.WriteLine(item);

// writes 1, 3

关于linq - 解释下面的 Linq 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778448/

相关文章:

c# - Linq:Xml 到 IEnumerable<KeyValuePair<int, string>> 延迟执行?

c# - 表达式树 : Binary operator not defined for types

c# - 用另一个键值列表减去一个键值列表

c# - 将 SQL(左外连接)转换为 LINQ

c# - 尝试更改 IQueryable 集合的属性

c# - LINQ 查询 SQL HAVING CLAUSE

linq - 在 List<> 上调用 Linqpad 的 .Dump() 方法时,如何为结果集命名?

linq - LINQ to SQL有什么优势?

c# - 使用 WCF 数据服务时出错

c# - .NET Compact Framework 中的 LINQ to SQL 替换