Frage

Ich versuche, eine einfache LINQ-Abfrage auf der Spalten-Eigenschaft eines Datatable ausführen:

from c in myDataTable.Columns.AsQueryable()
    select c.ColumnName

Doch was ich bekommen, ist dies:

  

Es konnte keine Implementierung des Abfragemuster für Quelltyp ‚System.Linq.IQueryable‘ gefunden. ‚Select‘ nicht gefunden. Betrachten wir ausdrücklich auf die Art der Bereichsvariablen ‚c‘ angeben.

Wie kann ich die Datacolumncollection mit LINQ schön zu spielen?

War es hilfreich?

Lösung

Wie wäre:

var x = from c in dt.Columns.Cast<DataColumn>()
        select c.ColumnName;

Andere Tipps

Sie können auch verwendet werden:

var x = from DataColumn c in myDataTable.Columns
        select c.ColumnName

Es wird die gleiche wie Daves Code effektiv tun: „in einem Abfrage-Ausdruck, eine explizit eingegebene Iterationsvariable übersetzt auf einen Aufruf von Besetzung (IEnumerable)“, nach dem Enumerable.Cast<TResult> Method MSDN-Artikel.

Mit Linq Methode Syntax:

var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top