一个IEnumerable接口问题

曾经在程序中为一个Combobox的类的DataSource属性赋值了一个IEnumerable<T>.Select()方法的返回值,结果在.net40中运行良好,但是.net4.5中就报错误,异常信息是

System.NotImplementedException: The method or operation is not implemented.

所以微软又给上了一课,接口之后一定要ToList,不然他也不能保证在不同的.Net版本中得到相同的结果。

时间: 2024-08-28 06:24:08

一个IEnumerable接口问题的相关文章

你可能不知道的陷阱, IEnumerable接口

IEnumerable枚举器接口的重要性,说一万句话都不过分.几乎所有集合都实现了这个接口,Linq的核心也依赖于这个万能的接口.C语言的for循环写得心烦,foreach就顺畅了很多. 我很喜欢这个接口,但在使用中也遇到不少的疑问,你是不是也有与我一样的困惑: (1) IEnumerable 与  IEnumerator到底有什么区别 (2) 枚举能否越界访问,越界访问是什么后果?为什么在枚举中不能改变集合的值? (3) Linq的具体实现到底是怎样的,比如Skip,它跳过了一些元素,那么这些

IEnumerator和IEnumerable接口

枚举器和可枚举类型 前面我们已经知道了使用foreach语句可以遍历数组中的元素.但是为什么那么做呢? 原因是数组按需提供了一个叫做枚举器的对象.枚举器可以依次返回请求数组中的元素. 枚举器知道项的次序并且跟踪它所在序列中的位置,然后返回请求的当前项. 获取一个对象枚举器的方法是调用对象的GetEnumerator方法.实现GetEnumerator方法的类型叫做可枚举类型. 数组是可枚举类型. IEnumerator接口 实现了IEnumerator接口的枚举器包含3个函数成员:Current

C# 索引器,实现IEnumerable接口的GetEnumerator()方法

当自定义类需要实现索引时,可以在类中实现索引器. 用Table作为例子,Table由多个Row组成,Row由多个Cell组成, 我们需要实现自定义的table[0],row[0] 索引器定义格式为 [修饰符] 数据类型 this[索引类型 index] 以下是代码 1 /// <summary> 2 /// 单元格 3 /// </summary> 4 public class Cell 5 { 6 /// <summary> 7 /// Value 8 /// <

IEnumerable接口

IEnumerable接口顾名思义就是 可枚举的,可列举的. 接口也很简单,返回一个 枚举器对象 IEnumerator . 1 [ComVisible(true), Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A")] 2 public interface IEnumerable 3 { 4 [DispId(-4)] 5 IEnumerator GetEnumerator(); 6 } 7 8 9 10 只有一个GetEnumerator方法,返

IEnumerable接口与IEnumerator接口

通过一个例子来看 -------------------------------------------------------Student.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; namespace ConsoleApplication6 {  

foreach为什么要实现IEnumerable接口而不是直接用IEnumerator接口

在.Net中,要想被foreach遍历,那么目标对象要实现IEnumerable或IEnumerable<T>接口,这个接口有一个方法,GetEnumerator(),返回一个IEnumerator接口,这个接口里定义了Next()等方法,例如: public class Garge : IEnumerable { public IEnumerator GetEnumerator { return new A(); } internal class A : IEnumerator { //实现

Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,

36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安 全生产”的抽象方法:abstract void safetyInProduction() (

IQueryable接口与IEnumerable接口比较

今天写代码的时候调到IQueryable里面看它的方法,发现它是实现IEnumerable接口的,then i'm confused! 要区分他俩还是先写段代码来看看吧~ 我们拿出以前那个练习EF增删改查的代码改一改: #region 查询单个实体 using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口 { //var mystudent = dbContext.T_StuInfo.Find("01");//使用主

IEnumerable接口的扩展方法

/// <summary>/// IEnumerable接口的扩展方法,支持它的实现类是List的情况/// </summary>using System.Collections.Generic;public static class IEnumerableExtensions{ /// <summary> /// 向集合中添加元素 /// </summary> /// <typeparam name="T"></typ