2009-05-07 5 views

Répondre

7

Eh bien, je ne sais pas désinvolture si oui ou non il va traduire dans la requête SQL appropriée, mais vous pouvez essayer ceci:

var query = from company in db.MyTable 
      let firstChar = company.CompanyName.Substring(0, 1).ToUpper() 
      group company by firstChar into grouped 
      select new { FirstChar = grouped.Key, Count = grouped.Count() }; 

Voici un LINQ to Objects exemple:

using System; 
using System.Collections.Generic; 
using System.Linq; 

class Test 
{ 
    static void Main() 
    { 
     var companies = new[] { 
      new { CompanyName = "One", CompanyID=1 }, 
      new { CompanyName = "Two", CompanyID=2 }, 
      new { CompanyName = "Three", CompanyID=3 }, 
      new { CompanyName = "Four", CompanyID=4 }, 
      new { CompanyName = "Five", CompanyID=5 }, 
      new { CompanyName = "Six", CompanyID=6 }, 
     }; 

     var query = from company in companies 
      let firstChar = company.CompanyName.Substring(0, 1).ToUpper() 
      group company by firstChar into grouped 
      select new { FirstChar = grouped.Key, Count = grouped.Count() }; 

     foreach (var entry in query) 
     { 
      Console.WriteLine(entry); 
     } 
    } 
} 

Résultat:

{ FirstChar = O, Count = 1 } 
{ FirstChar = T, Count = 2 } 
{ FirstChar = F, Count = 2 } 
{ FirstChar = S, Count = 1 } 

Suis-je au moins raison de dire que est ce que vous attendez de voir?

+0

Cela fonctionne pour SQL. Juste pour que tout le monde le sache. –

Questions connexes