首頁 >後端開發 >C++ >如何在DataTables上執行LINQ查詢?

如何在DataTables上執行LINQ查詢?

Linda Hamilton
Linda Hamilton原創
2025-01-30 03:16:08821瀏覽

How Can I Perform LINQ Queries on DataTables?

使用LINQ查詢DataTable:完整指南

雖然普遍認為無法直接使用LINQ查詢DataTable,但這其實可以通過一些技巧實現。 DataTable默認情況下不實現IEnumerable<T>接口,因此無法直接查詢其Rows集合。

解決方法是使用System.Data.DataSetExtensions程序集提供的AsEnumerable()擴展方法。通過在DataTable上調用此方法,您可以獲得一個IEnumerable<DataRow>對象,然後就可以用它進行LINQ查詢了。

例如,以下查詢將返回myDataTableRowNo字段等於1的所有行:

<code class="language-csharp">var results = from myRow in myDataTable.AsEnumerable()
              where myRow.Field<int>("RowNo") == 1
              select myRow;</code>

您也可以使用Lambda表達式創建LINQ查詢:

<code class="language-csharp">var result = myDataTable.AsEnumerable()
                         .Where(myRow => myRow.Field<int>("RowNo") == 1);</code>

請注意,您需要在項目中添加對System.Data.DataSetExtensions程序集的引用才能訪問這些擴展方法。

如果您需要將查詢結果IEnumerable<DataRow>轉換回DataTable,可以使用CopyToDataTable()擴展方法。

以上是如何在DataTables上執行LINQ查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn