原文:http://www.cnblogs.com/Janzen/p/5128749.html
該關鍵字主要用在非泛型到泛型之間的轉化,在有些場合還是很有用的;比如:在使用非泛型的時候,想使用LINQ表達式進行結果查詢
場景一:聲明非泛型數組
System.Collections.ArrayList fruits = new System.Collections.ArrayList(5); fruits.Add("Mango"); fruits.Add("Orange"); fruits.Add("Apple"); fruits.Add(32); fruits.Add("Banana");
若我們想得到含有“n”字母的水果,則使用如下方式
現將fruits轉化為兼容 IEnumerable<T>的類型
var query = fruits.OfType<string>(); //只取出滿足 string 的對象;
在使用LINQ表達式即可完成目的:
var result= from c in query where c.contain("n") select c;
場景二:當數據庫的表存在繼承關系(Infomations為基表,Docments為子表)
通過基表的Id,查詢並返回子表的數據,
返回類型為子表:
這種方法適用於多個類的通用屬性很多,差異屬性比較少的情況,且數據量不是極大的情況下,
因為在數據庫中,基類表和子表存儲在不同的表中,此操作其實本質是關聯查詢,在數據量特別大,查詢效率會受影響。