【问题标题】:Lambda Expressions Mixed with Statements in C#Lambda 表达式与 C# 中的语句混合
【发布时间】: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


    【解决方案1】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      相关资源
      最近更新 更多