Mark: C# SortedList index nach der Reihenfolge des Hinzufügens

Hallo,

ich habe folgendes:

            SortedList channel_list = new SortedList() {  
            { "1", "test1" },  
            { "514", "test2" },  
            { "16405", "test3" },  
            { "16403", "test4" },  
            { "16408", "test5" },  
            { "16406", "test6" },  
            { "16411", "test7" }, };

Jetzt möchte ich, dass der Index in der Reihenfolge des Hinzufügens erstellt wird. D.h. test1 soll den Index "1" haben, test2 den Index "2" usw.

Wie muss ich einen Comparer erstellen, damit das möglich ist?

Gruß

Mark

  1. Hi!

    ich habe folgendes: SortedList channel_list = new SortedList() {
    Jetzt möchte ich, dass der Index in der Reihenfolge des Hinzufügens erstellt wird.
    Wie muss ich einen Comparer erstellen, damit das möglich ist?

    Eine SortedList sortiert sich selbst. Die Information der Einfügereihenfolge ist danach nicht mehr vorhanden. Da kann auch kein Comparer mehr was retten. Warum nimmst du überhaupt eine SortedList und keine Hashtable (oder wenn es typisierter sein soll ein Dictionary<TKey, TValue>)?

    Lo!

    1. Eine SortedList sortiert sich selbst. Die Information der Einfügereihenfolge ist danach nicht mehr vorhanden. Da kann auch kein Comparer mehr was retten. Warum nimmst du überhaupt eine SortedList und keine Hashtable (oder wenn es typisierter sein soll ein Dictionary<TKey, TValue>)?

      Lo!

      Hallo,
      ich hatte es es erst mit einer Hashtable probiert, aber das gleiche Problem, dass ich es nicht nach der Reihenfolge der hinzugefügten Elemente sortiert bekommen habe :-(

      Könnt Ihr mir verraten, wie das bei der Hashtable funktioniert?

      Gruß

      Mark

      1. Hi!

        ich hatte es es erst mit einer Hashtable probiert, aber das gleiche Problem, dass ich es nicht nach der Reihenfolge der hinzugefügten Elemente sortiert bekommen habe :-(

        Entgegen meinem ersten Vorschlag scheidet auch Hashtable aus, weil die die Elemente anhand der Hashes vom Key einsortiert. Aber in der Dokumentation von Dictionary<TKey, TValue> steht nichts von einer Einsortierung beim Einfügen. Außerdem gibt es SortedDictionary<TKey, TValue> und SortedList<TKey, TValue>, so dass anzunehmenderweise Dictionary<TKey, TValue> die Reihenfolge beibehält.

        Lo!

        1. Hallo,

          Hi!

          ich hatte es es erst mit einer Hashtable probiert, aber das gleiche Problem, dass ich es nicht nach der Reihenfolge der hinzugefügten Elemente sortiert bekommen habe :-(

          Das hatte ich nämlich auch gelesen und hatte mich nach Deiner Aussage schon gewundert :-)

          Entgegen meinem ersten Vorschlag scheidet auch Hashtable aus, weil die die Elemente anhand der Hashes vom Key einsortiert. Aber in der Dokumentation von Dictionary<TKey, TValue> steht nichts von einer Einsortierung beim Einfügen. Außerdem gibt es SortedDictionary<TKey, TValue> und SortedList<TKey, TValue>, so dass anzunehmenderweise Dictionary<TKey, TValue> die Reihenfolge beibehält.

          Lo!

          Alles klar, dann werde ich mal Dictionary testen. Sollte es Probleme geben hört Ihr nochmals von mir :-)

          Gruß

          Mark

  2. Hallo,

    Hi...

    ich würde einfach nen Hashtable oder ne ArrayList nehmen, bzw. es gibt in .NET noch ne ganze Menge anderer Möglichkeiten von FIFO bzw. FILO Listen-Objekten.

    Gruß, Markus**