Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
>> Basics // Ein HashSet mit einem anderen zusammenführen Console.WriteLine(); Console.WriteLine("Zwei HashSets zusammenführen:"); Console.Write(numberHashSet3.ToStringList() + " mit " + numberHashSet2.ToStringList() + " = "); numberHashSet3.UnionWith(numberHashSet2); Console.WriteLine(numberHashSet3.ToStringList()); Console.WriteLine(); Console.WriteLine("Schnittmenge aus zwei HashSets:"); Console.Write(numberHashSet4.ToStringList() + " mit " + numberHashSet1.ToStringList() + " = "); numberHashSet4.IntersectWith(numberHashSet1); Console.WriteLine(numberHashSet4.ToStringList()); Listing 68: Verwenden verschiedener generischer Listen Klassen (Forts.) 129 Basics 48 Schnelle Auflistung mit Schlüssel und Indexzugriff Die Klasse KeyedCollection aus dem Namensraum System.Collections.ObjectModel erlaubt die Erzeugung einer Auflistung, auf deren Elemente Sie über einen Schlüssel oder einen Integer- Index zugreifen können. Diese Flexibilität wird wahrscheinlich mit etwas mehr Speicherver- brauch als bei einem Dictionary erkauft, dafür ist der Zugriff über den Schlüssel aber sogar etwas schneller (laut eigener Performancemessung). Um mit KeyedCollection arbeiten zu können, müssen Sie von der abstrakten Klasse eine neue Klasse ableiten, die die Methode GetKeyForItem implementiert. Diese Methode liefert den Schlüssel für ein gespeichertes Objekt. Die Rückgabe der Methode muss dem Typ entsprechen, der bei der Deklaration der KeyedCollection als Schlüsseltyp angegeben wurde. Das folgende Beispiel soll User -Objekte verwalten, die folgendermaßen deklariert sind: /* Beispiel-Klasse für die Speicherung von Objekten in einer KeyedCollection */ public class User { public string LoginName; public string FirstName; public string LastName; public User(string loginName, string firstName, string lastName) { this.LoginName = loginName; this.FirstName = firstName; this.LastName = lastName; } } Listing 69: Beispiel Klasse zur Speicherung in einer Auflistung Listing 70 zeigt die Deklaration einer von KeyedCollection abgeleiteten Klasse zur Speicherung von User-Objekten.