如何将LINQ写入对象此代码的等效代码

时间:2011-10-12 10:04:25

标签: c# .net linq

我们如何编写此代码的LINQ等效代码:

foreach (Function objFunc in _objCFLFile.CFLFunctionsList)
{
     if (objFunc.Name == txtFunctionName.Text)
     {
          ShowMessage(Constants.M10036);
          return false;
     }
}
谢谢你们,我把你的答案标记为+1 如果我想再添加一个这样的条件

foreach (Function objFunc in _objCFLFile.CFLFunctionsList)
            {
                if (objFunc.Name == txtFunctionName.Text && objFunc.Signature == OtherFunction.Signature)
                {
                    ShowMessage(Constants.M10046);//function already exists
                    return false;
                }
            }

在这种情况下,还有各种LINQ语法但是哪一个是完美的,有效的一个?

2 个答案:

答案 0 :(得分:5)

if (_objCFLFile.CFLFunctionsList.Any(f => f.Name == txtFunctionName.Text))
{
  ShowMessage(Constants.M10036);
  return false;
}

满足您的额外要求:

if (_objCFLFile.CFLFunctionsList.Any(f => f.Name == txtFunctionName.Text &&
                                     f.Signature == OtherFunction.Signature))
{
  ShowMessage(Constants.M10036);
  return false;
}

如果您还有更多条件要添加,则可能值得创建一种方法来进行比较。

答案 1 :(得分:1)

使用Any()

if (_objCFLFile.CFLFunctionsList.Any(objFunc => 
                  objFunc.Name == txtFunctionName.Text))            
            {
                ShowMessage(Constants.M10036);                     
                return false; 
            }