2009-06-01 11 views
1

ich in einigem Blog vor einiger Zeit gelesen habe (sorry für vage), dass ich eine Linq wie die wie foreach in Linq verwenden

var list = from c in xml 
      select new 
      { 
       foreach(XElement el in c.Elements()) 
       { 
       } 
      } 
folgenden verwenden könnte Weiß jemand, ist es möglich, oder ist es nur meine Vorstellung??

Danke.

+0

Ok, ich habe ein Xml mit zwei Teilen, erklärt zuerst die Felder in der XML und zweiten Teil hat Daten mit der Deklaration im ersten Teil verbunden. Also, was ich versuche zu tun ist, lesen Sie die erste der Felddefinition und verwenden Sie diese, um anonyme Klasse der Daten im zweiten Abschnitt zu erstellen. Der Versuch, das Programm nicht hart zu programmieren, da wir Daten aus verschiedenen Quellen mit unterschiedlichen Felddefinitionen erhalten. – Nair

Antwort

2

Sie können die ToList() - Funktion verwenden, um die Elemente in eine Liste von List zu konvertieren, dann können Sie die ForEach-Methode darauf verwenden. Zu Ihrer Information, wenn ich LinqToXml verwende, finde ich die Descendants() nützlicher, da sie einen vollständigen Einblick in das Objektmodell geben wird.

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

Sie können eine foreach -Schleife nicht direkt in einem anonymen Typ Initialisierungsausdruck Nr. Verwenden.

Wenn Sie uns sagen könnten, was Sie erreichen möchten, könnten wir Ihnen wahrscheinlich dabei helfen, den besten Weg zu finden.

1

Es ist Ihre Phantasie. Sie können die Ergebnisse einer linq-Abfrage in einer foreach-Schleife verwenden, aber Sie können keine foreach-Schleife wie die in der Deklaration für einen anonymen Typ verwenden.

0

Ok, ich habe ein XML mit zwei Teilen, erklärt zuerst die Felder in der XML und zweiten Teil hat Daten mit der Deklaration im ersten Teil verbunden. Also, was ich versuche zu tun ist, lesen Sie die erste der Felddefinition und verwenden Sie diese, um anonyme Klasse der Daten im zweiten Abschnitt zu erstellen. Der Versuch, das Programm nicht hart zu programmieren, da wir Daten aus verschiedenen Quellen mit unterschiedlichen Felddefinitionen erhalten.

+4

Bitte aktualisieren Sie Ihre ursprüngliche Frage. Dies ist eine Q & A-Site, kein Diskussionsforum. Es ist eine feine Unterscheidung, aber es bedeutet, dass dieser Raum ausschließlich für "Antworten", nicht für Klarstellungen gedacht ist. –