Maison  >  Article  >  développement back-end  >  Explication détaillée de l'ordre et de l'ordre inverse du dictionnaire en C#

Explication détaillée de l'ordre et de l'ordre inverse du dictionnaire en C#

黄舟
黄舟original
2017-05-07 10:21:333896parcourir

C# Après l'introduction de Linq dans la version 3.5 ou supérieure de .net, le tri par dictionnaire est devenu très simple. Cela peut être effectué avec une phrase similaire à la base de données SQL requête déclaration ; cependant, le tri dans .net 2.0 est un peu plus compliqué. Pour faciliter l'utilisation, les méthodes de tri de .net 3.5 et 2.0 seront résumées.

1. Créer un dictionnaire

objet

Si le dictionnaire stocke le trafic d'une page de site Web, la

clé est une page Web. le nom et la valeur correspondent au nombre de visites de la page Web. Étant donné que les visites de la page Web sont comptées en continu, int ne peut pas être utilisé comme clé. Seul le nom de la page Web peut être utilisé. pour créer un objet Dictionnaire et ajouter des données, procédez comme suit :

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. Tri du dictionnaire pour .net 3.5 ou supérieur (c'est-à-dire tri du dictionnaire linq)

1. Tri du dictionnaire par valeur valeur

 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 />");
  }
Tri des résultats :

index.html:50

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

ci-dessus Le code est classé par ordre décroissant (ordre inverse). Si vous souhaitez le classer par ordre croissant (ordre), il vous suffit de supprimer le décroissant sur le côté droit du.

variable dicSort.

2. Tri par clé du dictionnaire C#

Si vous souhaitez trier par clé, il vous suffit de changer objDic.Value sur le côté droit de la variable dicSort en objDic.Key.

3. Version .net 2.0 Tri du dictionnaire

1. Le dictionnaire est trié par valeur (ordre inverse)

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 />");
    }
  }
Tri des résultats :

index .html : 50

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

Disposition séquentielle : renvoie simplement la variable s2. .Value.CompareTo(s1.Value); peut être modifié pour renvoyer s1.Value.CompareTo(s2.Value);.

2. Tri des clés du dictionnaire C# (ordre inverse, ordre séquentiel)

Si vous souhaitez trier par clé, dans l'ordre inverse, modifiez simplement return s2.Value.CompareTo(s1.Value); pour return s2.Key.CompareTo(s1.Key);; s2.Key.CompareTo (s1.Key); peut être modifié pour renvoyer s1.Key.CompareTo(s2.Key);.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn