如何使用lambda表达式将参数传递给LINQ to XML查询?

时间:2010-08-17 14:06:42

标签: c# asp.net linq linq-to-xml lambda

我是.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表达式中参数的概念,那么它也会帮助我很多。

1 个答案:

答案 0 :(得分:1)

基本概念是你在一系列Where值上调用XElement - 所以lambda表达式执行了几次,a的值为“当前值” “XElement。然后lambda表达式表示XElement是否应该包含在结果中。

对于SelectMany调用,这实际上是对一系列序列进行扁平化 - 从一个XElement开始,您将产生所有ABC后代元素的序列。

真的只是对象的LINQ - 它只是LINQ to XML非常巧妙地适应LINQ to Objects。