二维数组不是IEnumerable

本文关键字:IEnumerable 二维数组 | 更新日期: 2023-09-27 18:19:36

i有一个函数,它必须接受两种类型的数据——MyClass的Observable集合和MyClass的二维数组。结构无关紧要,因为我对这些集合使用了linq查询。Like-给我集合中Myclass.Value==3的所有项目。

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

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

怎么了?非常感谢。

二维数组不是IEnumerable

矩形数组实现IEnumerable,但它们不实现IEnumerable<T>(对于任何T,包括明显的元素类型)。您可以通过调用Cast:轻松解决此问题

SomeMethod(array.Cast<MyClass>());