2012-04-18 158 views
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表达式引用这个变量吗?我无法弄清楚为什么它不会在条件运算符中结转。

回答

0

试试这个:

Array.Exists(mainArray, (arrayItem) => 
    { 
     return variable == secondArray[Array.IndexOf(mainArray, arrayItem)]; 
    });