Menguasai pertanyaan Linq pada datatables
kepelbagaian Linq meluas ke pelbagai sumber data, tetapi pertanyaan data yang memerlukan pendekatan tertentu. Secara langsung memohon LINQ ke baris DataTable sering membawa kepada kesilapan. Contohnya:
<code class="language-c#">var results = from myRow in myDataTable where results.Field("RowNo") == 1 select results;</code>
Penyelesaian yang dapat diselaraskan ()
Kunci adalah menggunakan kaedah lanjutan
DataTable ke dalam AsEnumerable()
, membolehkan integrasi LINQ lancar. Pendekatan yang betul ialah: Rows
IEnumerable<DataRow>
<code class="language-c#">var results = from myRow in myDataTable.AsEnumerable() where myRow.Field<int>("RowNo") == 1 select myRow;</code>
Pastikan anda telah menambah rujukan kepada
System.Data.DataSetExtensions
AsEnumerable()
untuk menukar IEnumerable<DataRow>
CopyToDataTable()
Ekspresi Lambda menawarkan sintaks yang lebih padat:
Dengan menggunakan kaedah ini, pemaju boleh memanfaatkan kuasa LINQ untuk manipulasi dan penapisan data yang cekap dalam aplikasi .NET mereka ketika bekerja dengan data.
<code class="language-c#">var result = myDataTable .AsEnumerable() .Where(myRow => myRow.Field<int>("RowNo") == 1);</code>
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan linq untuk menanyakan datatible dengan berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!