c#中ofType的用法


原文: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,查詢並返回子表的數據,

返回類型為子表:

這種方法適用於多個類的通用屬性很多,差異屬性比較少的情況,且數據量不是極大的情況下,

因為在數據庫中,基類表和子表存儲在不同的表中,此操作其實本質是關聯查詢,在數據量特別大,查詢效率會受影響。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM