54 votes

Convertir la liste de KeyValuePair en IDictionary "C #"

Mon scénario,

comment convertir List<KeyValuePair<string, string>> en IDictionary<string, string> ?

101voto

Jon Skeet Points 692016

Très, très simplement avec LINQ :

 IDictionary<string, string> dictionary =
    list.ToDictionary(pair => pair.Key, pair => pair.Value);

Notez que cela échouera s'il y a des clés en double - je suppose que ça va?

8voto

Ou vous pouvez utiliser cette méthode d'extension pour simplifier votre code :

 public static class Extensions
{
    public static IDictionary<TKey, TValue> ToDictionary<TKey, TValue>(
        this IEnumerable<KeyValuePair<TKey, TValue>> list)
    {
            return list.ToDictionary(x => x.Key, x => x.Value);
    } 
}

1voto

Andrew Bezzub Points 8794

Utilisez ToDictionary() méthode d'extension de l' Enumerable classe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X