我是.net(C#,asp.net)中LINQ to XML的新手。我想更多地了解Lambda表达式。我正在使用Lambada表达式和以下查询。
count = FieldRoot.Element("USER").Element("MM")
.Descendants("MMMS")
.Where(a => a.Attribute("ID").Value == MID)
.SelectMany(b => b.Descendants("ABC")).Count();
您能否告诉我Lambda表达式如何在参数情况下(在上述情况下为a& b)? Lambda表达式中参数的基本概念是什么?我们可以使用在查询之外定义的变量的名称而不是& b?哪些元素和& b代表上述情况代表什么?我们可以在查询中从外部传递参数吗?如果我们可以从外部查询传递参数,那么它将如何完成?如果你给我任何其他的例子而不是上面的查询来理解Lambda表达式中参数的概念,那么它也会帮助我很多。
答案 0 :(得分:1)
基本概念是你在一系列Where
值上调用XElement
- 所以lambda表达式执行了几次,a
的值为“当前值” “XElement。然后lambda表达式表示XElement是否应该包含在结果中。
对于SelectMany
调用,这实际上是对一系列序列进行扁平化 - 从一个XElement
开始,您将产生所有ABC后代元素的序列。
这真的只是对象的LINQ - 它只是LINQ to XML非常巧妙地适应LINQ to Objects。