Array
(
)

Fazer um count em uma linq que retorna um ToList()

Pjava
   - 24 set 2014

Preciso fazer um `count`, para a seguinte situação. Veja na imagem abaixo, que eu tenho repetido algumas farmácias, veja os CNPJ delas(***06626253003681 e 06626253001476***). Elas estão repetidas, porque estão em datas diferentes. O que necessito é que eu faça um `count` na quantidade de farmácias e o somatório eu coloco no nó **Eucerin Hyaluron Noite 50mg**, que nesse exemplo seria 6 e ao lado de cada medicamento a quantidade 1. Acontece que na minha `LINQ` eu tenho um `ToList()` e isso não me permite dar um `Count()`. Tenho muita dificuldade para fazer isso.
Veja como está minha tela:
Clique na imagem para abrir em uma nova janela
Veja minha linq abaixo:
#Código public static List<MontaArvoreAcao> CriarListaArvorePdv()
{
RupturaEntities db = new RupturaEntities();

var _listaPdv = (
from r in db.Ruptura
join a in db.Apresentacao on r.Codigo_Apresentacao equals (a.Codigo_Apresentacao)
join m in db.Motivo on r.IDMotivo equals (m.IDMotivo)
join p in db.PDV on r.CodigoPDV equals(p.CodigoPDV)
where r.IDMotivo != 6
group r by new { p.Cnpj, loja = p.Descricao, a.Descricao, a.Familia, a.Unidade_Negocio, r.IDMotivo, r.DataRuptura } into gr

select new MontaArvoreAcao
{
CnpjDescricao = gr.Key.Cnpj + " - " + gr.Key.loja,
Descricao = gr.Key.Descricao,
DataRuptura = gr.Key.DataRuptura,
Familia = gr.Key.Familia,
IDMotivo = gr.Key.IDMotivo,
Unidade_Negocio = gr.Key.Unidade_Negocio
}
).Distinct().ToList().OrderBy(r => r.Descricao);

return _listaPdv.ToList();
}

Joel Rodrigues
   - 25 set 2014

Mas a classe List suporta sim o método Count, por que você não está conseguindo utilizar?

Pjava
   - 25 set 2014

Este é o erro quando eu coloco um Count().

Citação:

'int' does not contain a definition for 'ToList' and no extension method 'ToList' accepting a first argument of type 'int' could be found (are you missing a using directive or an assembly reference?)

Pjava
   - 25 set 2014

Criei uma propriedade na minha Model, que chamei de Somatorio e depois antes do final do select fiz: Somatorio = gr.Count(). Isso resolveu.