using System.Collections.Generic;
public static void Main()
var movimentos = new List<Movimento>();
movimentos.Add(new Movimento
Processo = "Sequenciamento de dados",
CodigoES = "Entrada Plan -4"
movimentos.Add(new Movimento
Processo = "Sequenciamento de dados",
CodigoES = "Saída Plan -4"
var agrupado = from m in movimentos
group m by m.IdAcaoProcesso into g
Processo = g.FirstOrDefault().Processo,
Entrada = g.Any(x => x.TipoES == "Entrada") ? g.FirstOrDefault(x => x.TipoES == "Entrada").CodigoES : "",
Saida = g.Any(x => x.TipoES == "Saida") ? g.FirstOrDefault(x => x.TipoES == "Saida").CodigoES : ""
Console.WriteLine(string.Format("Processo={0} Entrada={1} Saída={2}", agrupado.FirstOrDefault().Processo, agrupado.FirstOrDefault().Entrada, agrupado.FirstOrDefault().Saida));
public int IdAcaoProcesso { get; set; }
public string TipoES { get; set; }
public string Processo { get; set; }
public string CodigoES { get; set; }