results.Where(x=>x.Members.Any(y=>members.Contains(y.Name.ToLower())
我碰巧在网上看到这个查询。谁能解释一下这个查询。
为这个新手推荐一个好的 LINQ 教程。
谢谢大家
编辑:
x 和 y 代表什么?
最佳答案
-
x
是results
中元素类型的单个结果顺序。 -
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/