【发布时间】:2013-01-09 15:20:42
【问题描述】:
随机示例:
ConfigurationElementCollection
.Net 有大量没有实现IEnumerable<T> 的小WhateverCollection 类,这意味着我不能使用Linq 来处理开箱即用的对象。
甚至在 Linq 之前,您可能会认为他们会想要使用泛型(我相信它是在 C# 2 中一直引入的)
似乎我总是遇到这些烦人的小集合类型。 有什么技术原因吗?
【问题讨论】:
-
它们是在泛型可用之前引入的。
-
如果集合倾向于包含强类型,您可以通过使用
OfType或Cast从技术上“开箱即用”使用LINQ,只要它至少实现IEnumerable(非-通用的)。OfType/Cast产生通用IEnumerable<T>实例,从而打开其余的 LINQ 运算符。 -
自从我上次使用 ArrayList 已经很久了。
-
@EricJ:当然泛型在 1.0 中不可用。但真正的问题是:“为什么 BCL 团队没有在 .NET 2.0 中为这些类添加通用接口?”。
-
也许这将是一个重大变化,尤其是在序列化/反序列化方面。
标签: c# ienumerable