我有一部分代码,我必须在其中使用带有通过 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 表达式中引用这个变量?我无法弄清楚为什么它没有在条件运算符中结转。