Feedback

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

Veröffentlicht von am 20.06.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
GFU-Schulungen  [Anzeige]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

/// <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!