using System.Collections.Generic;
public Entidade(byte[] recheio)
public static void Main()
List<Entidade> entidades = new List<Entidade>()
{CampoA = "A1", CampoB = "B1", CampoC = "C1", CampoD = "D1", }, new Entidade(null)
{CampoA = "A2", CampoB = "B2", CampoC = "C2", CampoD = "D2", }, new Entidade(null)
{CampoA = "A1", CampoB = "B1", CampoC = "C3", CampoD = "D3", }, new Entidade(null)
{CampoA = "A1", CampoB = "B1", CampoC = "C4", CampoD = "D4", }, new Entidade(null)
{CampoA = "A2", CampoB = "B2", CampoC = "C5", CampoD = "D5", }, new Entidade(null)
{CampoA = "A1", CampoB = "B1", CampoC = "C6", CampoD = "D6", }, };
var _tmp = entidades.GroupBy(x => new
{CampoA = x.CampoA, CampoB = x.CampoB})
.ToDictionary(x => new Entidade(null) {CampoA = x.Key.CampoA, CampoB = x.Key.CampoB}, x => x.ToList());
var json = Newtonsoft.Json.JsonConvert.SerializeObject(_tmp);
Console.WriteLine(_tmp.Keys.ToString());