2013-03-13 94 views
-8

我開始在linq中重寫下面的代碼沒有用。你能幫我解釋這個表達嗎?轉換爲LINQ

 bool bReturn = false; 
    string[] divs = strExport.Split(chrDivSep); 

    // bReturn = divs.Any(D => D.Split(chrItemSep).Any(C => C.Split(chrCoupleSep)[0].ToUpper() == "TABLE")); 
    foreach (string strdiv in divs) 
    { 
     string[] items = strdiv.Split(chrItemSep); 
     foreach (string item in items) 
     { 
      string[] couple = item.Split(chrCoupleSep); 
      switch (couple[0].ToUpper()) 
      { 
       case "TABLE": 
        // There is a non constant field 
        bReturn = true; 
        break; 
      } 
      if (bReturn) 
       break; 

     } 
     if (bReturn) 
      break; 
    } 

    return bReturn; 

回答

1

試試這個:

return (
    from div in strExport.Split(chrDivSep) 
    from item in div.Split(chrItemSep) 
    where String.Equals(item.Split(chrCoupleSep)[0], "table", StringComparison.OrdinalIgnoreCase) 
).Any();