Feedback

C# - IEnumerable<KeyValuePair<TK, TV>> zu Dictionary<TK, TV>

Veröffentlicht von am 6/20/2014
(0 Bewertungen)
Auch Wörterbücher kann man mit LINQ bearbeiten. Als Ergebnis erhält man jedoch nie ein neues Wörterbuch, stattdessen immer ein IEnumerable<KeyValuePair<TKey, TValue>>.

Diese Erweiterungsmethode wandelt die Auflistung in ein Wörterbuch um, ohne das Parameter erwartet werden. Die standardmäßige ToDictionary-Methode verlangt leider immer 2 Funktionen, die angeben wie der Schlüssel und wie der Wert ermittelt werden sollen. Diese Methode erspart einem die Parameterübergabe.

Hinweis: Auflistungen wie IOrderedEnumerable<T> erben von IEnumerable und können somit problemlos umgewandelt werden.

Benötigte Namespaces
System.Collections.Generic
System.Linq
/// <summary>
/// Erstellt ein <see cref="System.Collections.Generic.Dictionary{TKey,TValue}"/> aus einem <see cref="System.Collections.Generic.IEnumerable{T}"/> mit <see cref="System.Collections.Generic.KeyValuePair{TKey,TValue}"/> Werten.
/// </summary>
/// <typeparam name="TKey">Der Typ von dem die Schlüssel in dem Wörterbuch sind.</typeparam>
/// <typeparam name="TValue">Der Typ von dem die Werte in dem Wörterbuch sind.</typeparam>
/// <param name="source">Die Quellliste mit den Wörterbucheinträgen.</param>
/// <returns>Ein Wörterbuch mit den Einträgen der <paramref name="source"/> Liste.</returns>
public static Dictionary<TKey, TValue> ToDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> source)
{
    return source.ToDictionary(x => x.Key, x => x.Value);
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!