我有函数,它必须接受两种类型的数据 - MyClass的Observable集合和myclass的二维数组。结构无关紧要,因为我在这些集合上使用linq查询。喜欢 - 给我收集Myclass.Value == 3的所有项目。
所以我创建了函数,它接受类型为IEnumerable<MyClass>
的参数,因为二维数组和可观察集合都实现了IEnumerable,它应该可以工作。
但是,当我尝试将MyClass [,]类型的参数传递给我的函数时,发生编译时错误 - 参数类型Myclass [,]不能分配给参数类型IEnumerable<MyClass>
。
有什么问题?谢谢。
答案 0 :(得分:9)
矩形数组做实现IEnumerable
,但他们不实现IEnumerable<T>
(对于任何T
,包括显而易见的元素类型)。您可以通过拨打Cast
:
SomeMethod(array.Cast<MyClass>());