Linq操作非泛型集合

2021-09-09 03:03:41 字數 915 閱讀 1616

我們都知道,linq能查詢泛型集合,確切的說是:linq能實現查詢泛型物件或者實現了ienumerable。但是,很遺憾的是諸如arraylist這樣的非泛型集合並沒有實現ienumerable。那咋辦呢?總不能把這麼絢麗的linq技術對非泛型關上大門把!~其實,方法還是有的。

場景還原:

定義乙個car的類:

class

car

對arraylist 裝載一些資料:

arraylist cars = new

arraylist();

cars.add(

new car );

cars.add(

new car );

如果強制使用linq操作,會報錯:

解決方法如下:

var myallcars = cars.cast();

var result = from c in

myallcars

where c.maxspeed > 10

select c;

var myallcars = cars.oftype();

var result = from c in

myallcars

where c.maxspeed > 10

select c;

oftype 除了上面轉換非泛型之外,還有乙個功能是刷選資料的功能。

這個很簡單

泛型集合,非泛型集合

arraylist 非泛型集合 list 泛型集合 集合跟陣列比較我們更容易理解。陣列 1,長度固定2,資料型別預先宣告 集合 1,長度可變2,資料型別預先宣告的為泛型集合,資料型別不限定為非泛型 arraylist 長度不固定,元素資料型別為object的集合。object類之間或間接為所有類的父...

C 中的非泛型集合和泛型集合

今天學習了c 中的非泛型集合arraylist和泛型集合list 先來看非泛型集合 使用非泛型集合之前注意呼叫system.collections using system using system.collections namespace lesson21 2 清空陣列 a.clear flag...

泛型和非泛型

原帖 泛型和非泛型 一 區別 1 非泛型類容器來說,該容器的元素型別是 object 使用方便,無須指定具體的元素型別。但是這種使用上的方便帶來了慘重的效能上的損失,因為,我們每次插入乙個元素就要經過一次 裝箱 操作,每次訪問乙個元素就要經過一次 拆箱 操作。arraylist hashtable ...