我想使用Linq查询2D数组,但出现错误:
找不到源类型为’SimpleGame.ILandscape [ , ]’ 的查询模式的实现。找不到“选择”。您是否缺少对“ System.Core.dll”的引用或对“ System.Linq”的using指令?
代码如下:
var doors = from landscape in this.map select landscape;
我检查了是否包含参考资料System.Core并使用System.Linq。
System.Core
System.Linq
谁能给出一些可能的原因?
为了将多维数组与LINQ一起使用,您只需要将其转换为IEnumerable<T>。这很简单,这是两个示例查询选项
IEnumerable<T>
int[,] array = { { 1, 2 }, { 3, 4 } }; var query = from int item in array where item % 2 == 0 select item; var query2 = from item in array.Cast<int>() where item % 2 == 0 select item;
每种语法都会将2D数组转换为IEnumerable<T>(因为您int item在一个from子句中或array.Cast<int>()在另一个子句中说了)。然后,您可以使用LINQ方法过滤,选择或执行所需的任何投影。
int item
array.Cast<int>()