LINQ GroupBy em vários campos do tipo ref; EqualityComparer personalizado

Então eu examinei cerca de 20 exemplos sobre isso em SO e em outros lugares, mas não encontrei um que cobre o que estou tentando fazer. Este -Posso especificar meu comparador de tipo explícito inline? - parece o que eu preciso, mas não vai longe o suficiente (ou eu não entendo como levar isso adiante).

Eu tenho uma lista de LoadData, o objeto LoadData tem campos de referência e tipos de valorPrecisa agrupar em uma mistura de campos ref e valor, projete a saída para um tipo anônimo

Preciso (acho) fornecer um IEqualityComparer personalizado para especificar como comparar os campos GroupBy, mas eles são um tipo anônimo

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

A melhor consulta do GroupBy que tenho até agora:

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

Isso agrupa, mas ainda há duplicatas.

Como posso especificar um código personalizado para comparar os campos GroupBy? Por exemplo, os componentes podem ser comparados por Component.Code.

questionAnswers(2)

yourAnswerToTheQuestion