+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Ordinare gli elementi di una dictionary

  1. #1
    SebastianoFloridia non è in linea Scolaretto
    Post
    100

    Ordinare gli elementi di una dictionary

    Salve a tutti,
    avrei necessità di ordinare, secondo int crescente, gli elementi di una collections, così dichiarata.

    Dictionary<string, int> NodiAllineati = new Dictionary<string,int>();

    Ho visto vari esempi ma nulla di snello.

    Quale è la migliore strada da seguire?

    Grazie

    Sebastiano Floridia

  2. #2
    SebastianoFloridia non è in linea Scolaretto
    Post
    100
    Salve a tutti.
    Ho provato in questa maniera, e funziona.

    List<KeyValuePair<string, int>> sorted = (from kv in NodiAllineati orderby kv.Value select kv).ToList();

    in questo modo devo creare una nuova collection.
    esiste una maniere per ordinare la stessa collection di partenza?

    Grazie
    Sebastiano Floridia

  3. #3
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    191
    Ciao Sebastiano,

    di quanti elementi potenziali stiamo parlando? Potresti provare a guardare per implementare un Bubble Sort o un Selection Sort

  4. #4
    SebastianoFloridia non è in linea Scolaretto
    Post
    100
    Un numero irrisorio.
    max 20.
    Faccio prima a fare la doppia collection.

    Grazie Sebastiano

  5. #5
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,110
    Quote Originariamente inviato da SebastianoFloridia Visualizza il messaggio
    in questo modo devo creare una nuova collection.
    esiste una maniere per ordinare la stessa collection di partenza?
    In generale, non credo vi sia una possibilità di fare quanto chiedi a meno di non utilizzare una struttura diversa dal Dictionary, oppure modificando la tua struttura specificando il tipo int come chiave e la string come valore.

    Ogni altra soluzione richiede probabilmente una quantità di codice non indifferente per poter essere implementata.

    Dal mio punto di vista, non c'è nulla di male nello sfruttare LINQ per ottenere la lista degli elementi ordinati in base al proprio criterio preferito.

    Se la preoccupazione deriva dal fatto che gli elementi sono tanti, allora forse non è nemmeno una buona idea salvarli nel dizionario in partenza, o comunque bisogna prevedere una elaborazione che parzializzi il numero di risultati su cui si lavora.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi