MASTERING LINQ -Abfragen auf DataTables
Die Vielseitigkeit vonLinq erstreckt sich auf verschiedene Datenquellen, aber das Abfragen von DataTables erfordert einen bestimmten Ansatz. Das direkte Anwenden von Linq auf die Zeilen eines DataTable -Anlagens führt häufig zu Fehlern. Zum Beispiel:
<code class="language-c#">var results = from myRow in myDataTable where results.Field("RowNo") == 1 select results;</code>
Dieser Code fällt fehl.
Die Assenumerable () -Lösung
Der Schlüssel besteht darin, die Erweiterungsmethode AsEnumerable()
zu verwenden. Dadurch werden die Rows
-Kollektion des DataTable in eine IEnumerable<DataRow>
umgewandelt, wodurch eine nahtlose LINQ -Integration ermöglicht wird. Der richtige Ansatz ist:
<code class="language-c#">var results = from myRow in myDataTable.AsEnumerable() where myRow.Field<int>("RowNo") == 1 select myRow;</code>
Wichtige Hinweise:
System.Data.DataSetExtensions
hinzugefügt haben, um AsEnumerable()
zu verwenden. IEnumerable<DataRow>
zurück in ein DataTable zu konvertieren, verwenden Sie die Erweiterungsmethode CopyToDataTable()
. Lambda -Ausdrücke: ein prägnanterer Ansatz
Lambda -Ausdrücke bieten eine kompaktere Syntax:
<code class="language-c#">var result = myDataTable .AsEnumerable() .Where(myRow => myRow.Field<int>("RowNo") == 1);</code>
Durch die Anwendung dieser Methoden können Entwickler die Leistung von LINQ für effiziente Datenmanipulation und Filterung in ihren .NET -Anwendungen bei der Arbeit mit DataTables nutzen.
Das obige ist der detaillierte Inhalt vonWie kann ich LINQ verwenden, um ein DataTable effektiv abzufragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!