【发布时间】:2012-04-18 01:21:02
【问题描述】:
我有一部分代码,我必须在其中使用一个函数,该函数带有通过 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 表达式中引用这个变量?我不知道为什么它没有在条件运算符中结转。
【问题讨论】:
标签: lambda conditional expression operator-keyword