LINQ GroupBy для нескольких полей типа ref; Custom EqualityComparer

Так что я'мы просмотрели около 20 примеров по этому вопросу на SO и в других местах, но покане нашел тот, который охватывает то, что яЯ пытаюсь сделать. Это -Могу ли я указать свой явный компаратор типа inline? - выглядит как то, что мне нужно, но ненедостаточно далеко (или я нене понимаю, как это сделать дальше).

У меня есть список LoadData, объект LoadData имеет поля как ссылочных, так и типов значенийНужно сгруппировать по совокупности полей ref и value, спроецировать вывод на анонимный тип

Нужно (я думаю) предоставить собственный IEqualityComparer, чтобы указать, как сравнивать поля GroupBy, но они являются анонимным типом

private class LoadData
{
    public PeriodEndDto PeriodEnd { get; set; }
    public ComponentDto Component { get; set; }
    public string GroupCode { get; set; }
    public string PortfolioCode { get; set; }
}

Лучший запрос GroupBy, который я получил до сих пор:

var distinctLoads = list.GroupBy(
    dl => new { PeriodEnd = dl.PeriodEnd, 
                Component = dl.Component, 
                GroupCode = dl.GroupCode },
    (key, data) => new {PeriodEnd = key.PeriodEnd, 
                Component = key.Component, 
                GroupCode = key.GroupCode, 
                PortfolioList = data.Select(d=>d.PortfolioCode)
                                    .Aggregate((g1, g2) => g1 + "," + g2)},
    null);

Это группы, но есть еще дубликаты.

Как указать пользовательский код для сравнения полей GroupBy? Например, Компоненты можно сравнить с помощью Component.Code.

Ответы на вопрос(2)

Ваш ответ на вопрос