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

LINQ 學習筆記 (七) 延遲執行與非泛型集合查詢 (四)

     編輯:關於C語言

查詢非泛型集合

.NET 1.x 時代集合非泛型(如 ArrayList),元素為 object。LINQ 基於泛型,需轉型才能查詢。Enumerable.Cast<T>() 與 OfType<T>() 使此成為可能。

Cast<T> 顯式轉型

ArrayList list = new ArrayList { 1, 2, 3, 4, 5 };
var result = from i in list.Cast() select i;
// 或隱式指定型別
var result = from int i in list select i;

OfType<T> 類型過濾

非泛型集合可能混含不同型別,Cast 會拋出例外,OfType 只選取指定型別元素,忽略其餘:

ArrayList list = new ArrayList { 1, 2, "abc", 3, 4 };
var result = from int i in list.OfType() select i;
// 結果:1, 2, 3, 4 ("abc" 被忽略)

若使用 Cast 或隱式轉型會擲出 InvalidCastException。

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