=====Trouver une clé depuis une valeur=====
Nécessite ''Linq'' et de parcourir toute la liste.
IEnumerable> items = liste.Where(f => f.Value.Name.StartsWith("Plop"));
=====Mettre un KeyValuePair à null=====
Si une fonction renvoie un KeyValuePair, il peut être nécessaire de renvoyer la valeur null. Mais KeyValuePair ne peut pas. A la place, il faut utiliser ''default(KeyValuePair)'' et ensuite comparer la valeur de retour avec ''retour.Equals(default(KeyValuePair))''.
=====SortedDictionary avec une class comme clé=====
La classe (ici, une structure)
private struct KeyIni
{
public string Section;
public string Key;
}
La fonction de comparaison, avec ''x'' la nouvelle valeur et ''y'' la valeur à comparer. Pour insérer ''x'' avant ''y'', il faut renvoyer -1, pour insérer ''x'' après ''y'', il faut renvoyer 1 et si ''x'' est identique à ''y'', il faut renvoyer 0. Si cette fonction renvoie 0, une exception de type ''ArgumentException'' sera déclenchée.
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, on compare les clés.
else
{
return x.Key.CompareTo(y.Key);
}
}
}
Déclaration du dictionnaire trié.
SortedDictionary keyPairs = new SortedDictionary(new SortKeyIni());