基本概念:IEnumerable:使用的是LINQ to Object方式,它会将AsEnumerable()时对应的所有记录都先加载到内存,然后在此基础上再执行后来的QueryIQeurable(IQuerable<T>):不在内存加载持久数据,因为这家伙只是在组装SQL,(延迟执行) 到你要使用 ...
分类:
编程语言 时间:
2018-09-06 02:28:45
阅读次数:
413
先定义 一个方法显示查询出来的数据 private void showInfoByElements(IEnumerable elements) { List modelList = new List();//BookModel 对应的读取数据的实体类 foreach (var ele in elem ...
分类:
其他好文 时间:
2018-08-24 14:50:27
阅读次数:
128
Yield:是一个关键字,通过状态机实现,充分体现了延迟加载的特性。下面是一个实例代码,运行一下,会发现Yield的神奇之处。classProgram{staticvoidMain(string[]args){{IEnumerable<int>results=CommonMethod();results=YieldMethod();}Console.WriteLine("*******
分类:
其他好文 时间:
2018-07-17 14:16:39
阅读次数:
128
这些转换操作符将集合转换成数组:IEnumerable、IList、IDictionary等。转换操作符是用来实现将输入对象的类型转变为序列的功能。名称以"As"开头的转换方法可更改源集合的静态类型但不枚举(延迟加载)此源集合。名称以"To"开头的方法可枚举(即时加载)源集合并将项放入相应的集合类型 ...
分类:
其他好文 时间:
2018-07-15 11:05:15
阅读次数:
154
分组是根据一个特定的值将序列中的元素进行分组。LINQ只包含一个分组操作符:GroupBy。GroupBy操作符类似于T-SQL语言中的Group By语句。来看看GroupBy的方法定义: 从方法定义中可以看出:GroupBy的返回值类型是:IEnumerable<IGrouping<TKey, ...
分类:
其他好文 时间:
2018-07-14 13:01:53
阅读次数:
181
1、说明:协变和逆变只能出现在接口和委托中。????????协变通过out来修饰,逆变通过in来修饰2、需要解决的问题:????3、解决方案:?????IEnumerable<Parent> _parents = ne
分类:
Web程序 时间:
2018-07-10 22:40:12
阅读次数:
230
LINQ 查询适用于实现的数据源 IEnumerable<T>接口或System.Query.IQueryable接口。 DataTable类默认是没有实现以上接口的。 所以要在DataTable中使用LINQ查询,需要调用一下AsEnumerable方法,返回一个EnumerableRowColl ...
回顾之前的代码都是LINQ自行推断类型。其实LINQ在查询的结束是可以动态创建类型。 所谓的自动类型就是通过New关键字来创建。 像代码中的 则是自动创建成IEnumerable类型的 没事多练练这个,还是很方便的!!!! ...
使用泛型可以定义接口,在接口中定义的方法可以带泛型参数。在链表的中,实现了IEnumerable<out T>接口,它定义了GetEnumerator()方法,返回IEnumerator<T>。.net中提供了许多泛型接口:IComparable<T>、ICollection<T>和Iextensi ...
分类:
其他好文 时间:
2018-06-28 21:34:37
阅读次数:
174
LINQ to Object是针对实现了IEnumerable<T>的对象的LINQ。而在System.Linq.Enumerable类中,总共定义了40来个查询运算符 全部用扩展方法来实现,他们被称为标准查询运算符。每个查询运算符的执行行为不同,大致分为立即执行和延时执行。延时执行,顾名思义就是不 ...
分类:
编程语言 时间:
2018-06-24 10:27:38
阅读次数:
157