Dot-Net
數據表選擇與 LINQ 選擇
在處理記憶體數據表時,關於何時應使用**DataTable.Select與****LINQ Select**的任何建議?
我發現 LINQ 語法更簡單、更強大,但我不確定是否存在性能或其他問題使 DataTable 選擇更可取。
(我正在使用第三方 API,該 API 提供已從數據庫預填充的 DataTable。我需要在記憶體中進一步過濾。)
根據個人經驗,我盡量避免使用 Datatable.Select。我發現它很慢並且有一些奇怪的錯誤。
我遇到的一個(由 Microsoft 確認並記錄的)錯誤是,當語句中有括號時,DataTable.Select 並不總是正確評估 AND 條件。
例如,(Col1 > 1) AND (Col < 10) 可能無法返回正確答案,而 Col1 > 1 AND Col < 10 將正常工作。
此錯誤不會出現在每台電腦上。在我的情況下,我使用的檢查在我的開發平台和除一台之外的每台客戶端電腦上執行良好。在我發現這個錯誤後,我開始轉向使用 LINQ 進行選擇,並註意到操作速度顯著提高。
旁注:無需過多解釋,我的公司不使用數據庫來儲存數據。 我們對 DataTables 的所有操作都涉及從平面文件載入的記憶體表。所以我說的不是 LINQ 2 SQL,而是 LINQ to Dataset。