Da wir immer noch im Umfeld von Framework 2 arbeiten hier die Möglichkeit ein Dictionary interessant zu "erweitern".
Wenn man in ein Dictionary einen Key einfügen will, der bereits enthalten ist, wirft das Dictionary eine Exception. Daher muss man immer abfangen ob denn der neue Key schon drin ist. Wenn ja, dann muss man normalerweise das alte Key/Value-Paar entfernen und as neue einfügen.
Da dies recht oft vorkommt hier ein erweitertes Dictionary, das eine Methode anbietet, die etwas "gefälliger" ist.
Als Rückgabewert erhällt man "null" (bzw. den default) oder den alten Wert.
Das ganze verhällt sich damit so ähnlich wie eine Hashmap in Java
using System;
using System.Collections.Generic;
using System.Text;
namespace mein.namespacedings
{
public class DictionaryPlus<K, T> : Dictionary<K, T>
{
/// <summary>
/// Erweitert das normale Dictionary um die Möglichkeit
/// ein Key-Value Paar hinzuzufügen und den (falls vorhanden)
/// bereits unter dem Schlüssel eingetragenen Value zurück zu
/// bekommen.
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public T AddReturnOld(K key,T value)
{
T result = default(T);
if (this.ContainsKey(key))
{
result = this[key];
this.Remove(key);
}
this.Add(key, value);
return result;
}
}
}
3 Kommentare zum Snippet