2011-10-12 15 views
1

我們怎麼可以這樣寫代碼的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語法,但它會是完美的,有效的嗎?

+1

所有的答案都是等價的,除了Aliostad的。只需添加&&等,即可添加額外條件。傳遞給Any()的lambda表達式 –

回答

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

使用Any()

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