程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> LINQ和泛型類型

LINQ和泛型類型

編輯:關於.NET

LINQ 查詢基於泛型類型,在 .NET Framework 的 2.0 版中引入了泛型類型。您無需深入了解泛型即可開始編寫查詢。但是,您可能需要了解兩個基本概念:

當您創建泛型集合類(如 List<(Of <(T>)>))的實例時,您將“T”替換為列表將包含的對象的類型。例如,字符串列表表示為 List,Customer 對象列表表示為 List。泛型列表是強類型的,且提供了比將其元素存儲為 Object 的集合更多的好處。如果您嘗試將 Customer 添加到 List,則會在編譯時出現一條錯誤。泛型集合易於使用的原因是您不必執行運行時類型強制轉換。

IEnumerable<(Of <(T>)>) 是一個接口,通過該接口,可以使用 foreach 語句來枚舉泛型集合類。泛型集合類支持 IEnumerable<(Of <(T>)>),就像非泛型集合類(如 ArrayList)支持 IEnumerable。

LINQ 查詢中的 IEnumerable 變量

LINQ 查詢變量類型化為 IEnumerable<(Of <(T>)>) 或派生類型,如 IQueryable<(Of <(T>)>)。當您看到類型化為 IEnumerable 的查詢變量時,這只意味著在執行該查詢時,該查詢將生成包含零個或多個 Customer 對象的序列。

IEnumerable<Customer> customerQuery =
from cust in customers
where cust.City == "London"
select cust;
foreach (Customer customer in customerQuery)
{
Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}

讓編譯器處理泛型類型聲明

如果您願意,可以使用 var 關鍵字來避免使用泛型語法。var 關鍵字指示編譯器通過查看在 from 子句中指定的數據源來推斷查詢變量的類型。下面的示例生成與上一個示例相同的編譯代碼:

var customerQuery2 =
from cust in customers
where cust.City == "London"
select cust;
foreach(var customer in customerQuery2)
{
Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}

當變量的類型明顯或顯式指定嵌套泛型類型(如由組查詢生成的那些類型)並不重要時,var 關鍵字很有用。通常,我們建議如果您使用 var,應意識到這可能使您的代碼更難以讓別人理解。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved