首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

LINQ to SQL 運算子轉換與集合實體化完整指南(13):AsEnumerable、ToArray、ToList、ToDictionary 實戰

     編輯:關於ASP.NET

掌握將 IQueryable 轉換為客戶端集合的關鍵運算子,解決伺服器端無法轉譯的邏輯(如自訂方法呼叫)。

1. AsEnumerable:切換至客戶端查詢

var q = from p in db.Products.AsEnumerable()
        where IsValidProduct(p)  // 客戶端方法,無法轉 SQL
        select p;

強制後續運算子使用 Enumerable 而非 Queryable 實作,在記憶體中執行篩選。

2. ToArray:實體化為陣列

var q = from c in db.Customers where c.City == "London" select c;
Customer[] qArray = q.ToArray(); // 立即執行查詢

3. ToList:實體化為泛型清單

var q = from e in db.Employees where e.HireDate >= new DateTime(1994,1,1) select e;
List<Employee> qList = q.ToList();

4. ToDictionary:實體化為字典

var q = from p in db.Products 
        where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued 
        select p;
Dictionary<int, Product> qDictionary = q.ToDictionary(p => p.ProductID);
foreach (int key in qDictionary.Keys) Console.WriteLine(key);

選擇指南

運算子回傳型別適用場景
AsEnumerableIEnumerable<T>需混合伺服器/客戶端邏輯,延遲執行
ToArrayT[]固定大小、高效能索引存取
ToListList<T>需增刪改、最通用
ToDictionaryDictionary<TKey,T>鍵值查找、去重複
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved