Outils pour utilisateurs

Outils du site


lang:csharp:dictionary

Ceci est une ancienne révision du document !


Trouver une clé depuis une valeur

Nécessite Linq et de parcourir toute la liste.

IEnumerable<KeyValuePair<FlowLayoutPanel, IHMPanel>> 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<T,U>) et ensuite comparer la valeur de retour avec retour.Equals(default(KeyValuePair<T,U>)).

SortedDictionary avec une class comme clé

La classe (ici, une structure)

private struct KeyIni
{
    public string Section;
    public string Key;
}

La fonction de comparaison :

private class SortKeyIni : IComparer<KeyIni>
{
    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<KeyIni, string> keyPairs = new SortedDictionary<KeyIni, string>(new SortKeyIni());
lang/csharp/dictionary.1483527957.txt.gz · Dernière modification : de root