二维数组不是IEnumerable?

时间:2012-01-05 15:29:01

标签: c# .net collections

我有函数,它必须接受两种类型的数据 - MyClass的Observable集合和myclass的二维数组。结构无关紧要,因为我在这些集合上使用linq查询。喜欢 - 给我收集Myclass.Value == 3的所有项目。

所以我创建了函数,它接受类型为IEnumerable<MyClass>的参数,因为二维数组和可观察集合都实现了IEnumerable,它应该可以工作。

但是,当我尝试将MyClass [,]类型的参数传递给我的函数时,发生编译时错误 - 参数类型Myclass [,]不能分配给参数类型IEnumerable<MyClass>

有什么问题?谢谢。

1 个答案:

答案 0 :(得分:9)

矩形数组实现IEnumerable,但他们实现IEnumerable<T>(对于任何T,包括显而易见的元素类型)。您可以通过拨打Cast

轻松解决此问题
SomeMethod(array.Cast<MyClass>());