lang:csharp:dictionary
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
lang:csharp:dictionary [2016/08/23 11:27] – Création root | lang:csharp:dictionary [2017/01/04 15:03] (Version actuelle) – [SortedDictionary avec une class comme clé] : précision sur la fonction de comparaison. root | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
=====Trouver une clé depuis une valeur===== | =====Trouver une clé depuis une valeur===== | ||
- | Pas possible sans parcourir toute la liste. | + | Nécessite '' |
+ | <code csharp> | ||
+ | IEnumerable< | ||
+ | </ | ||
=====Mettre un KeyValuePair à null===== | =====Mettre un KeyValuePair à null===== | ||
Si une fonction renvoie un KeyValuePair, | Si une fonction renvoie un KeyValuePair, | ||
+ | |||
+ | =====SortedDictionary avec une class comme clé===== | ||
+ | La classe (ici, une structure) | ||
+ | <code csharp> | ||
+ | private struct KeyIni | ||
+ | { | ||
+ | public string Section; | ||
+ | public string Key; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | La fonction de comparaison, | ||
+ | <code csharp> | ||
+ | private class SortKeyIni : IComparer< | ||
+ | { | ||
+ | public int Compare(KeyIni x, KeyIni y) | ||
+ | { | ||
+ | // On compare x par rapport à y. | ||
+ | int compareVal = x.Section.CompareTo(y.Section); | ||
+ | |||
+ | // Est-ce que les sections sont différentes ? | ||
+ | if (compareVal != 0) | ||
+ | { | ||
+ | return compareVal; | ||
+ | } | ||
+ | // Si les sections sont différentes, | ||
+ | else | ||
+ | { | ||
+ | return x.Key.CompareTo(y.Key); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Déclaration du dictionnaire trié. | ||
+ | <code csharp> | ||
+ | SortedDictionary< | ||
+ | </ | ||
+ |
lang/csharp/dictionary.1471944445.txt.gz · Dernière modification : 2016/08/23 11:27 de root