Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Reihenfolge und umgekehrten Reihenfolge des Wörterbuchs in C#

Detaillierte Erläuterung der Reihenfolge und umgekehrten Reihenfolge des Wörterbuchs in C#

黄舟
黄舟Original
2017-05-07 10:21:333959Durchsuche

C# Nach der Einführung von Linq in .net Version 3.5 oder höher ist die Wörterbuchsortierung sehr einfach geworden. Sie kann mit einer ähnlichen SQL-Datenbank--Abfrage--Anweisung durchgeführt werden ; Allerdings ist das Sortieren in .net 2.0 etwas schwieriger. Aus Gründen der Benutzerfreundlichkeit werden die Sortiermethoden von .net 3.5 und 2.0 zusammengefasst.

1. Wörterbuch-Wörterbuch--Objekt

erstellen. Wenn das Wörterbuch den Seitenverkehr einer Website speichert, ist Schlüssel eine Webseite Name und Wert entsprechen der Anzahl der Besuche auf der Webseite. Da die Besuche auf der Webseite kontinuierlich gezählt werden, kann int nicht als Schlüssel verwendet werden zum Erstellen eines Wörterbuchobjekts und zum Hinzufügen von Daten ist wie folgt:

Dictionary<string, int> dic = new Dictionary<string, int>();
  dic.Add("index.html", 50);
  dic.Add("product.html", 13);
  dic.Add("aboutus.html", 4);
  dic.Add("online.aspx", 22);
  dic.Add("news.aspx", 18);

2. Wörterbuchsortierung für .net 3.5 oder höher (d. h. Linq-Wörterbuchsortierung)

1. Wörterbuchsortierung nach Wertwert

 private void DictonarySort(Dictionary<string, int> dic)
  {
    var dicSort = from objDic in dic orderby objDic.Value descending select objDic;
    foreach(KeyValuePair<string, int> kvp in dicSort)
      Response.Write(kvp.Key + ":" + kvp.Value + "<br />");
  }

Ergebnisse sortieren:

index.html: 50
online.aspx: 22
news.aspx: 18
product.html: 13
aboutus.html: 4

oben Der Code ist in absteigender Reihenfolge (umgekehrte Reihenfolge) angeordnet. Wenn Sie ihn in aufsteigender Reihenfolge (Reihenfolge) anordnen möchten, müssen Sie nur die absteigende Reihenfolge auf der rechten Seite entfernen Variable dicSort.

2. Schlüsselsortierung im C#-Wörterbuch

Wenn Sie nach Schlüssel sortieren möchten, müssen Sie nur den objDic.Value auf der rechten Seite der Variablen dicSort in objDic.Key ändern.

3. Wörterbuchsortierung der .net 2.0-Version

1. Wörterbuch wird nach Wert sortiert (umgekehrte Reihenfolge)

private void DictionarySort(Dictionary<string, int> dic)
  {
    if (dic.Count > 0)
    {
      List<KeyValuePair<string, int>> lst = new List<KeyValuePair<string, int>>(dic);
      lst.Sort(delegate(KeyValuePair<string, int> s1, KeyValuePair<string, int> s2)
      {
        return s2.Value.CompareTo(s1.Value);
      });
      dic.Clear();

      foreach (KeyValuePair<string, int> kvp in lst)
        Response.Write(kvp.Key + ":" + kvp.Value + "<br />");
    }
  }

Ergebnisse sortieren:

Index . html: 50
online.aspx: 22
news.aspx: 18
product.html: 13
aboutus.html: 4

Sequentielle Anordnung: Geben Sie einfach die Variable s2 zurück .Value.CompareTo(s1.Value); kann geändert werden, um s1.Value.CompareTo(s2.Value); zurückzugeben.

2. Sortierung der C#-Wörterbuchschlüssel (umgekehrte Reihenfolge, sequentielle Reihenfolge)

Wenn Sie nach Schlüssel sortieren möchten, ändern Sie einfach return s2.Value.CompareTo(s1.Value); in return s2.Key.CompareTo(s1.Key);; in umgekehrter Reihenfolge s2.Key.CompareTo (s1.Key); kann geändert werden, um s1.Key.CompareTo(s2.Key); zurückzugeben.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Reihenfolge und umgekehrten Reihenfolge des Wörterbuchs in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn