首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

LINQ查詢語法與直接遍歷集合的性能對比

     編輯:程式設計綜合問答

關於 var query = from x in table select x; 然後 foreach(var item in query),與直接 foreach(var item in table) 的區別:

結論

兩者編譯後的IL代碼幾乎完全相同,運行性能無任何差異。

原理解析

  • 查詢語法只是語法糖,編譯器會將其翻譯為方法調用鏈:table.Select(x => x)。
  • Select(x => x) 返回一個迭代器,延遲執行,實際遍歷時逐個yield return元素。
  • 直接 foreach(table) 也是調用 GetEnumerator() 逐個迭代。
  • 兩者都不會創建中間集合,內存佔用和CPU開銷一致。

建議

根據代碼可讀性選擇:簡單遍歷用 foreach 更直觀;涉及篩選、投影、排序等復雜邏輯時,LINQ查詢語法更清晰易維護。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved