2009-04-29 48 views
6
結合由

我學習LINQ,結果被困在這裏:-( 任何一個可以幫助我下面的代碼轉換爲LINQ如何WHERE子句和組LINQ

Select Catg,Count(*) From Mycatg where IsPublic=1 or FirstName='XXX' Group By Catg . 

回答

17

在C#中,像?:

var query = from category in mycatg 
      where category.IsPublic == 1 
       || category.FirstName == "XXX" 
      group 1 by category.Catg into grouped 
      select new { Catg = grouped.Key, 
         Count = grouped.Count() }; 

的「1」,則投影明確指出,我們需要的是分組和計數的關鍵 - 在每個分組中的各個條目無關

編輯:現在有lambda語法和點符號:

var query = mycatg.Where(category => category.IsPublic == 1 
         || category.FirstName == "XXX") 
        .GroupBy(category => category.Catg, 
          category => 1) 
        .Select(grouped => new { Catg = grouped.Key, 
              Count = grouped.Count() }); 
+0

當談到LINQ時,你是如此之快。很好的例子! – pyrocumulus 2009-04-29 13:21:24