Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di pishta
    Registrato dal
    May 2006
    Messaggi
    138

    Sort di ArrayList composto da arrays di oggetti

    Salve a tutti, come potrei fare il Sort() di un ArrayList composto da array di oggetti?

    Sono in questo scenario

    ArrayList soluzione{
    arrayOggetto1->[el1][el2][el3]
    arrayOggetto2->[el1][el2][el3]
    arrayOggetto3->[el1][el2][el3]
    arrayOggetto4->[el1][el2][el3]
    arrayOggetto5->[el1][el2][el3]
    }

    vorrei ordinare l'ArrayList in base a el3.

    Grazie

  2. #2
    ma questi array di oggetti cosa contengono? Per ordinare c'è bisogno di un criterio di ordinamento, un qualcosa da confrontare per stabilire l'ordinamento.
    Questi "elementi" cosa sono? hanno una proprietà comune? sono stringhe? numeri?

  3. #3
    Utente di HTML.it L'avatar di pishta
    Registrato dal
    May 2006
    Messaggi
    138
    Dunque io ho una lista così definita

    List<Soluzione> sol = new List<Soluzione>();

    ogni oggetto Soluzione ha dei campi (variabili istanza)

    string nome1
    string nome2
    double valore


    vorrei ordinare gli oggetti Soluzione all'interno di questa lista in modo crescente in base a "double valore"

  4. #4
    Devi utilizzare l'interfaccia IComparer.

    Per utilizzarla però devi anche aggiungere il metodo "CompareTo" alla tua classe:
    codice:
    public class Soluzione() : IComparable
    {
    	...
    	...
    
    	public int CompareTo(Soluzione s2)
    	{
    		return this.valore.CompareTo(s2.valore);
    	}
    }
    Il codice per effettuare la comparazione poi è questo:
    codice:
    class CompareSoluzioneByValue<Soluzione> : IComparer<Soluzione>
    {
    	public int Comapre(Soluzione x, Soluzione y)
    	{
    		return x.CompareTo(y);
    	}
    }
    e la chiamate è questa:
    codice:
    IComparer<Soluzione> myComparer = new CompareSoluzioneByValue<Soluzione>();
    myList.Sort(myComparer);

    UPDATE:
    puoi usare anche una lambda:
    codice:
    myList.Sort((sol1, sol2) => {return sol1.CompareTo(sol2);});

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.