为什么需要IEnumerable<T>转成List<T>
2个回答
展开全部
如果你要一个集合,只是元素的类型会有变化,则建议你用List<T>等泛型类,不用自己做。
如果你要附加一些功能,则自己的类从List<T>等继承。
你也可以从CollectionBase继承,CollectionBase帮你保存item(集合的元素),其他的事自己做,不过从CollectionBase继承会有装箱拆箱的过程,往往是在不能采用泛型的情况下选用的。
如果你连保存item也要自定义,则自己的类实现ICollection接口,这样就可以支持foreach了,同时一切功能自己灵活定义。ICollection的父接口就是IEnumerable。
如果你只想实现IEnumerable,那起到什么作用估计就是你问题的等价答案,这个接口只有一个方法GetEnumerator,通过它你可以得到一个IEnumerator对象,然后调用它的MoveNext,Reset等方法调整当前对象,再通过Current得到当前对象。
如果仅实现IEnumerable,实用意义不大。更推荐实现ICollection来做到支持foreach。
如果你要附加一些功能,则自己的类从List<T>等继承。
你也可以从CollectionBase继承,CollectionBase帮你保存item(集合的元素),其他的事自己做,不过从CollectionBase继承会有装箱拆箱的过程,往往是在不能采用泛型的情况下选用的。
如果你连保存item也要自定义,则自己的类实现ICollection接口,这样就可以支持foreach了,同时一切功能自己灵活定义。ICollection的父接口就是IEnumerable。
如果你只想实现IEnumerable,那起到什么作用估计就是你问题的等价答案,这个接口只有一个方法GetEnumerator,通过它你可以得到一个IEnumerator对象,然后调用它的MoveNext,Reset等方法调整当前对象,再通过Current得到当前对象。
如果仅实现IEnumerable,实用意义不大。更推荐实现ICollection来做到支持foreach。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询