using System.Collections.Generic;
public static void Main()
new Importacao { Id = 1, TipoPlanilha = TipoPlanilha.Pdv, Status = StatusImportacao.Processando },
new Importacao { Id = 1, TipoPlanilha = TipoPlanilha.Pdv, Status = StatusImportacao.Processando },
new Importacao { Id = 2, TipoPlanilha = TipoPlanilha.Pdv, Status = StatusImportacao.Processando },
new Importacao { Id = 3, TipoPlanilha = TipoPlanilha.Pdv, Status = StatusImportacao.Finalizado },
new Importacao { Id = 4, TipoPlanilha = TipoPlanilha.EquipmentModel, Status = StatusImportacao.Processando },
new Importacao { Id = 5, TipoPlanilha = TipoPlanilha.EquipmentModel, Status = StatusImportacao.Processando },
new Importacao { Id = 6, TipoPlanilha = TipoPlanilha.Usuario, Status = StatusImportacao.Processando }
foreach (var (tipoPlanilha, importacoes) in query
.Where(x => x.Status == StatusImportacao.Processando)
.GroupBy(x => x.TipoPlanilha, y => y, (plan, elements) =>
new Tuple<TipoPlanilha, IEnumerable<Importacao>>(plan, elements)))
var agrupadosPorId = importacoes.GroupBy(x => x.Id, y => y, (id, importacao) =>
new Tuple<long, Importacao>(id, importacao.First()));
foreach (var (_, importacao) in agrupadosPorId)
Console.WriteLine($"{tipoPlanilha} - {importacao.Id}");
public StatusImportacao Status { get; set; }
public TipoPlanilha TipoPlanilha { get; set; }
public long Id { get; set; }
public enum StatusImportacao