我們都知道,linq能查詢泛型集合,確切的說是:linq能實現查詢泛型物件或者實現了ienumerable。但是,很遺憾的是諸如arraylist這樣的非泛型集合並沒有實現ienumerable。那咋辦呢?總不能把這麼絢麗的linq技術對非泛型關上大門把!~其實,方法還是有的。
場景還原:
定義乙個car的類:
class對arraylist 裝載一些資料:car
arraylist cars = new如果強制使用linq操作,會報錯:arraylist();
cars.add(
new car );
cars.add(
new car );
解決方法如下:
var myallcars = cars.cast();var result = from c in
myallcars
where c.maxspeed > 10
select c;
var myallcars = cars.oftype();oftype 除了上面轉換非泛型之外,還有乙個功能是刷選資料的功能。var result = from c in
myallcars
where c.maxspeed > 10
select c;
這個很簡單
泛型集合,非泛型集合
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 ...