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,查询并返回子表的数据,

返回类型为子表:

扫描二维码关注公众号,回复: 3182883 查看本文章

这种方法适用于多个类的通用属性很多,差异属性比较少的情况,且数据量不是极大的情况下,

因为在数据库中,基类表和子表存储在不同的表中,此操作其实本质是关联查询,在数据量特别大,查询效率会受影响。

猜你喜欢

转载自www.cnblogs.com/likui-bookHouse/p/9645150.html