2009-04-29 27 views

Respuesta

17

En C#, algo así.?:

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

la proyección de "1" deja claro que todo lo que necesitamos es la clave de la agrupación y el recuento - las entradas individuales de cada grupo son irrelevantes

EDIT:. Ahora, con sintaxis lambda y notación de puntos:

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

Eres tan rápido cuando se trata de LINQ. Buen ejemplo! – pyrocumulus

+0

@Jon - Para obtener crédito adicional, ¿puede hacer esta misma consulta en sintaxis lambda? –

+0

Gracias Jon por tu ayuda – Wondering