2009-05-07 5 views

Antwort

7

Nun, ich weiß nicht ohne Weiteres, ob es in die entsprechende SQL-Abfrage übersetzen werden, aber man konnte diese versuchen:

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() }; 

Hier ist eine LINQ to Objects Beispiel:

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); 
     } 
    } 
} 

Ergebnis:

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

Bin ich zumindest zu Recht sagen, dass das, was man erwarten würde, zu sehen?

+0

Es funktioniert für SQL. Nur so weiß es jeder. –

Verwandte Themen