LINQ GroupBy na wielu polach ref-type; Custom EqualityComparer

Przejrzałem więc około 20 przykładów na temat SO i innych, ale nie znalazłem takiego, który obejmuje to, co próbuję zrobić. To -Czy mogę określić mój bezpośredni komparator typu inline? - wygląda jak to, czego potrzebuję, ale nie idzie wystarczająco daleko (lub nie rozumiem, jak dalej to robić).

Mam listę LoadData, obiekt LoadData ma pola zarówno typu referencyjnego, jak i wartościowegoKonieczne jest grupowanie na mieszance pól wartości i wartości, rzutowanie wyniku na typ anonimowy

Potrzebuję (myślę), aby dostarczyć niestandardowy komponent IEqualityComparer, aby określić sposób porównywania pól GroupBy, ale są one typu anonimowego

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

Najlepsze zapytanie GroupBy, jakie do tej pory prowadziłem:

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);

Te grupy, ale nadal są duplikaty.

Jak mogę określić niestandardowy kod do porównywania pól GroupBy? Na przykład Komponenty mogą być porównywane przez Component.Code.

questionAnswers(2)

yourAnswerToTheQuestion