代码之家  ›  专栏  ›  技术社区  ›  Shailesh Jaiswal

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

  •  1
  • Shailesh Jaiswal  · 技术社区  · 15 年前

    我对.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表达式中参数的基本概念是什么?我们可以使用查询外部定义的变量名而不是a&b吗?在上述情况下,A&B代表哪些元素?我们可以在查询中从外部传递参数吗?如果我们可以从外部查询传递参数,那么将如何进行呢?如果您为理解lambda表达式中的参数概念而不是上面的查询提供任何其他示例,那么它也将对我有很大帮助。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Jon Skeet    15 年前

    基本概念是你打电话给 Where 在一系列 XElement 值-因此lambda表达式被执行多次,其值为 a 作为“当前”元素。然后lambda表达式将说明Xelement是否应包含在结果中。

    对于 SelectMany 调用,这实际上是将序列从一个 X元素 ,您将生成所有ABC子代元素的序列。

    这是 真正地 只需要linq到对象—这只是linq到xml与linq到对象非常协调。

    推荐文章