Walaupun secara amnya dipercayai bahawa DataTatable tidak boleh digunakan secara langsung, ini sebenarnya boleh dicapai melalui beberapa teknik. DataTable tidak melaksanakan antara muka
secara lalai, jadi ia tidak dapat secara langsung menanyakan koleksi barisnya.
IEnumerable<T>
Penyelesaiannya adalah dengan menggunakan kaedah pengembangan
. Dengan memanggil kaedah ini pada DataTable, anda boleh mendapatkan objek System.Data.DataSetExtensions
, dan kemudian anda boleh menggunakannya untuk pertanyaan LINQ. AsEnumerable()
Contohnya, pertanyaan berikut akan mengembalikan semua baris yang IEnumerable<DataRow>
🎜> medan sama dengan 1:
myDataTable
anda juga boleh menggunakan ekspresi lambda untuk membuat pertanyaan linq: RowNo
<code class="language-csharp">var results = from myRow in myDataTable.AsEnumerable() where myRow.Field<int>("RowNo") == 1 select myRow;</code>
dalam projek untuk mengakses sambungan ini.
<code class="language-csharp">var result = myDataTable.AsEnumerable() .Where(myRow => myRow.Field<int>("RowNo") == 1);</code>
kembali ke datatible, anda boleh menggunakan kaedah pengembangan System.Data.DataSetExtensions
.
Atas ialah kandungan terperinci Bagaimana saya boleh melakukan pertanyaan linq pada datables?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!