Obwohl allgemein angenommen wird, dass das DataTatable nicht direkt verwendet werden kann, kann dies tatsächlich durch einige Techniken erreicht werden. DataTable implementiert die
-Schinschnittstelle standardmäßig nicht, sodass sie die Zeilensammlung nicht direkt abfragen kann.
IEnumerable<T>
Die Lösung besteht darin, die von der
-Expansionsmethode zu verwenden. Wenn Sie diese Methode auf DataTable aufrufen, können Sie ein System.Data.DataSetExtensions
-Objekt erhalten und dann für die Linq -Abfrage verwenden. AsEnumerable()
IEnumerable<DataRow>
Zum Beispiel geben die folgenden Anfragen alle Zeilen zurück, die
myDataTable
RowNo
Sie können auch den Lambda -Ausdruck verwenden, um eine Linq -Abfrage zu erstellen:
<code class="language-csharp">var results = from myRow in myDataTable.AsEnumerable() where myRow.Field<int>("RowNo") == 1 select myRow;</code>
Bitte beachten Sie, dass Sie eine Verweise auf die
-Artage im Projekt hinzufügen müssen, um auf diese Erweiterungen zuzugreifen.<code class="language-csharp">var result = myDataTable.AsEnumerable() .Where(myRow => myRow.Field<int>("RowNo") == 1);</code>
Wenn Sie die Abfrageergebnisse System.Data.DataSetExtensions
wieder in DataTable konvertieren müssen, können Sie die
Das obige ist der detaillierte Inhalt vonWie kann ich Linq -Abfragen für Datatables ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!