2012-11-08 68 views
0

請考慮下面的代碼:轉換Lambda表達式集團通過對LINQ版本

var result = data 
     .GroupBy(a => groupA.Contains(a.Group) ? "A" : 
         groupB.Contains(a.Group) ? "B" : 
         "N/a") 
     .Select(a => new 
     { 
      KEY = a.Key, 
      VALUE = a.Count() 
     }); 

任何一個可以幫助如何GroupBy轉換爲LINQ版本?

感謝


編輯1)

我想這種風格:

from a in .... 
group a by .... 
select ... 
+0

sry did not understand.is it linq has already? –

+0

你的意思是「查詢表達式」?如果是這樣的話,只需要LINQPad並去banananananananna's。 http://www.linqpad.net/ – Hardrada

+0

請看我的編輯1 – Arian

回答

2

你可以嘗試somethink這樣,但我會堅持到你有什麼,如果它的工作原理

var result= from p in data 
    group p by new 
    { Criterion = p.Contains(p.Group) ? "A" : p.Contains(p.Group) ? "B" : "N/a" } 
    into g select new {KEY = g.Key, VALUE = g.Count()}; 
+0

感謝它works.just小問題。首先'Lambda Expression'查詢當我使用'KEY = g.Key'並綁定我的查詢到gridview它顯示'A'和' B'但在你的代碼中,當我將結果綁定到gridview時,它不顯示KEY。如何在不使用'KEYA = g.Key.A,KEYB = g.Key.B'的情況下顯示該列。我只需要一列 – Arian

1

試試這個,

​​
+0

thnaks請在@Cold告訴answer.thanks看到我的評論 – Arian