Brincando com List<T> - como fazer uma ordenação customizada

O objetivo de criar a classe anterior é ler um arquivo texto com mais de 120.000 linhas (todas extraídas do meu Outlook), contendo e-mails que respondi ou que enviei. Lógico que existem n e-mails enviados para cada pessoa... Então criar uma List que não aceitasse repetições foi interessante.

Criei uma instância (objeto) da classe ListaUnica<String>, onde cada elemento tem um @ (garanti isso no aplicativo que extrai os dados do Outlook). Só que ao ordenar, com Sort(), o programa obedece a ordenação das strings - é o que chamamos ordem natural (alfabética para strings, do menor número para o maior, da menor data para a maior, e por aí vai). Eu preciso ordenar pelo domínio e não pelos nomes das pessoas (gmail com gmail, live com live, etc).

Preciso, ainda, exportar a ListaUnica<T> para arquivo. Para isso criei o método ToFile(String nomeArquivo)

O novo código da minha ListaUnica<T> ficou assim:

class ListaUnica<T> : List<T>
{
    
public new void Add(T item)
    {
        
if (!this.Contains(item))
            
base.Add(item);
    
}

    Func<T, T, 
int> Ordenar (x, y) 
=> x.ToString().Split('@')[1].CompareTo(y.ToString().Split('@')[1]);

    public new void 
Sort()
    {
        
base.Sort(new Comparison<T>(Ordenar))
    
}

    
public void ToFile(String nomeArquivo)
    {
        StreamWriter arq 
= null;

        
arq = new StreamWriter(nomeArquivo, true, Encoding.UTF8);

       foreach 
(var item in this)
            arq.WriteLine(item)
;

        arq.Close()
;
    
}
}

Para usar a exportação de dados da lista, para arquivo, basta fazer:
objListUnica.ToFile(@"c:\arquivoDestino.txt"); 

E, para ordenar, basta: objListUnica.Sort();

Comentários (5) -

Alexandre Zuppo
Alexandre Zuppo
20/01/2010 18:46:28 #

Po cara..
Vc não sabe a falta que faz láaaaaaa no "treinamento .net", sabe o que to falando né?

então né....
=/

agnaldo
agnaldo
20/01/2010 19:32:28 #

ehehheh...

Meu... precisando de algo é só gritar!!!

Vc usava o email zuppao@gmail.com???

Amanda
Amanda
23/04/2010 23:53:23 #

Oi!! Estou Gritando !!!!

Preciso de ajuda. Como faço um programa de ordenação??? Em Visual Basic.NET?

agnaldo
agnaldo
24/04/2010 08:25:27 #

Em qual algoritmo??? Escolha um, dois ou cem, aqui na lista que eu faço para você: http://en.wikipedia.org/wiki/Sorting_algorithm

Whatever She Wants Tv
Whatever She Wants Tv
24/06/2010 17:58:11 #

Hi, I'm thinking about starting a blog, and can't decide which platform to choose. Which platform do you use? Most people are telling me to use Moveable Type.

Comentar

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading