0

我有一部分代码,我必须在其中使用带有通过 lambda 语句获得的参数的函数(为简化起见,类似于此):

Item.Move(Array.Exists(mainArray, arrayItem => 
(variable == secondArray[Array.IndexOf(mainArray, arrayItem)]))
? secondArray[Array.IndexOf(mainArray, arrayItem)
: new Vector2(-variable.X, variable.Y));

但是,问题在于,在条件运算符的第一个操作中,arrayItem 带有下划线,并且显示错误“当前上下文中不存在名称'arrayItem'”,即使它是在 lambda 的开头定义的.

因此,我尝试在 lambda 中添加一条语句,为外部定义的变量提供 arrayItem 的值,但它带来了许多错误。

有没有办法从 lambda 表达式中引用这个变量?我无法弄清楚为什么它没有在条件运算符中结转。

4

1 回答 1

0

尝试这个:

Array.Exists(mainArray, (arrayItem) =>
    {
        return variable == secondArray[Array.IndexOf(mainArray, arrayItem)];
    }); 
于 2012-10-22T05:36:38.683 回答