如何在linq中使用foreach

时间:2009-06-01 14:02:51

标签: c# linq foreach anonymous-types

我前段时间在某个博客上读过(很抱歉含糊不清)我可以使用以下的linq

var list = from c in xml
           select new 
           {
              foreach(XElement el in c.Elements())
              {
              }
           }

有谁知道这是可能还是仅仅是我的想象力?

感谢。

4 个答案:

答案 0 :(得分:4)

您不能直接在匿名类型初始化表达式中使用foreach循环,编号为

如果你能告诉我们你想要达到的目标,我们可以帮助你找到最好的方法。

答案 1 :(得分:2)

您可以使用ToList()函数将元素转换为List列表,然后就可以使用ForEach方法。在使用LinqToXml时,我发现Descendants()更有用,因为它会完全深入到对象模型中。

xml.Elements().ToList().ForEach(ele => DoSomething(ele));

答案 2 :(得分:1)

这是你的想象力。您可以在foreach循环中使用linq查询的结果,但是您不能在匿名类型的声明中使用类似的foreach循环。

答案 3 :(得分:0)

好的,我有一个包含两个部分的xml,首先声明xml中的字段,第二部分具有与第一部分中的声明相关联的数据。所以我要做的是,阅读第一个字段定义并使用它来创建第二部分中的数据的匿名类。由于我们从不同来源获取具有不同字段定义的数据,因此不要在程序中进行硬编码。