none
Obter valores duplicados em um objeto dentro de uma list. RRS feed

  • Pergunta

  • Olá pessoa.

    Estou fazendo uma ferramenta do qual preciso tratar muita informação.

    Vamos lá..

    Primeiramente:

    class product {
        public string name { get; set; }
        public string location { get; set; }
        public ulong campoX { get; set; }
    }

    Ai tenho: List<produts> productsList = new List<produts>();

    Nesse List<produts> vou adicionar 60 milhões de informações.

    Depois preciso listar todos os produtos da List<> que estão com os valores campoX duplicados.

    Preciso de todos eles...

    Fiz assim:
    var result = productsList..Select(x => x).GroupBy(x => x.campoX).Where(x => x.Count() > 1).Select(x => x);

    Depois listo isso em um foreach(var aaa in result) { .... }

    Porem, utiliza TODA a memoria livre da maquina (mais de 6gb) e demora cerca de 20 minutos ou mais para executar isso...

    Existe alguma maneira de fazer isso mais rápido e consumindo pouca memória?

    OBS: O exe esta sendo compilado em 64bits para não dar memory out.

    Alguem possui uma sugestão de como fazer isso de outro jeito?

    Obrigado.

    quarta-feira, 12 de setembro de 2012 15:50

Todas as Respostas