2016-08-22 36 views
0

有人可以帮我弄清楚为什么我在下面的LINQ查询中遇到编译器错误?为什么我会得到“表达式表示一个”变量“,这里有一个”方法组“的预期?

int[,] umap = /* initialize umap */; 

int[][] surroundings = new int[][] { 
    new int[] { x0 - 1, y0 }, new int[] { x0, y0 }, 
    new int[] {x0 + 1, y0}, new int[] { x0 - 1, y0 + 1}, 
    new int[] { x0, y0 + 1 }, new int[] {x0 + 1, y0 + 1}, 
    new int[] { x0 - 1, y0 - 1}, new int[] { x0, y0 - 1 }, 
    new int[] {x0 + 1, y0 - 1} 
}; 
var real = surroundings.Where(pair => pair[0] >= 0 && pair[0] < xN 
            && pair[1] >= 0 && pair[1] < yN 
            && !umap(pair[0], pair[1])); 
+1

这是什么'umap'这里是如何定义的 –

+0

我假设'xN'和'yN'是'int's。什么是'umap'? – smarx

+1

'umap'是一个'bool [,]' – user6048670

回答

1

变化!umap(pair[0], pair[1])!umap[pair[0], pair[1]]

每以上您的意见,这是一个二维数组,但你试图调用它,就好像它是一个方法。要索引到数组中,请使用方括号。

+0

哎呀。这基本上是我的一个类型。 – user6048670

相关问题