關於 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() 逐個迭代。根據代碼可讀性選擇:簡單遍歷用 foreach 更直觀;涉及篩選、投影、排序等復雜邏輯時,LINQ查詢語法更清晰易維護。