как использовать foreach в linq - PullRequest
1 голос
/ 01 июня 2009

Я читал в каком-то блоге некоторое время назад (извините за расплывчатость), что я мог бы использовать linq, как показано ниже

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

Кто-нибудь знает, возможно ли это или это только мое воображение?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 01 июня 2009

Нельзя использовать цикл foreach непосредственно в выражении инициализации анонимного типа, нет.

Если бы вы могли рассказать нам, чего вы пытаетесь достичь, мы, вероятно, могли бы помочь вам найти лучший способ сделать это.

2 голосов
/ 05 декабря 2009

Вы можете использовать функцию ToList () для преобразования элементов в список List, затем вы можете использовать метод ForEach для него. К вашему сведению, при использовании LinqToXml я считаю Descendants () более полезным, так как он сделает полное погружение в объектную модель.

xml.Elements().ToList().ForEach(ele => DoSomething(ele));
1 голос
/ 01 июня 2009

Это ваше воображение. Вы можете использовать результаты запроса linq в цикле foreach, но вы не можете использовать цикл foreach, подобный этому, в объявлении для анонимного типа.

0 голосов
/ 01 июня 2009

Хорошо, у меня есть xml с двумя частями, первая объявляет поля в xml, а вторая часть имеет данные, связанные с объявлением в первой части. Поэтому я пытаюсь прочитать первое определение поля и использовать его для создания анонимного класса данных во втором разделе. Стараемся не кодировать программу жестко, поскольку мы получаем данные из разных источников с разными определениями полей.

...