我有一部分代码,我必须使用一个带有通过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 :(得分:0)
试试这个:
Array.Exists(mainArray, (arrayItem) =>
{
return variable == secondArray[Array.IndexOf(mainArray, arrayItem)];
});