Eine eindeutige Sammlung von Elementen, die nicht in der richtigen Reihenfolge sind, wird als HashSet bezeichnet
Syntax von HashSet in C#
HashSet<Type_of_hashset> Hashset_name = new HashSet<Type_of_hashset>();
Die obige Syntax stellt HashSet in C# dar. Der Typ des Hashsets kann auch durch den Großbuchstaben T dargestellt werden.
Hashset in C# ist eine einzigartige Sammlung von Elementen ohne Reihenfolge. Es gehört zum Namensraum Systems.Collections.Generic und wird immer dann verwendet, wenn wir keine Duplikate in unserer Sammlung benötigen, d. h. es vermeidet das Einfügen von Duplikaten in die Sammlung und vergleicht die Leistung von HashSet. HashSet bietet eine bessere Leistung im Vergleich zu Listensatzoperationen, die von HashSet bereitgestellt werden, und bietet eine hohe Leistung. Um die Funktionsweise von Hashset zu verstehen, beginnen wir mit der Erstellung eines einfachen Hashset-Programms in C#.
Code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; foreach(var nam in nameslist) { Console.WriteLine(nam); } Console.ReadKey(); } } }
Im obigen Programm wird ein einfaches Hashset vom Typ Strings erstellt. Die Zeichenfolgen Shobha, Shivakumar und Shardha werden dem erstellten Hashset vom Typ Zeichenfolgen hinzugefügt. Die Ausgabe des obigen Programms ist im Schnappschuss unten dargestellt:
Wie bereits erläutert, lässt das Hashset nicht zu, dass doppelte Elemente zur Sammlung hinzugefügt werden. Versuchen wir, dem oben erstellten Hashset vom Typ „Strings“ ein doppeltes Element hinzuzufügen und die Ausgabe des Programms zu verstehen. Dann können wir die Methode „add“ verwenden, um die Elemente zur Sammlung hinzuzufügen.
Code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; nameslist.Add("Shobha"); //collection cannot contain duplicate elements. foreach(var nam in nameslist) { Console.WriteLine(nam); } Console.ReadKey(); } } }
Im obigen Programm wird ein einfaches Hashset vom Typ Strings erstellt. Anschließend werden die Zeichenfolgen Shobha, Shivakumar und Shardha zum erstellten Hashset vom Typ Zeichenfolgen hinzugefügt. Wenn wir versuchen, mit der Add-Methode eine doppelte Zeichenfolge Shobha zum erstellten Hashset hinzuzufügen, wird kein Fehler angezeigt, aber die doppelte Zeichenfolge wird nicht hinzugefügt, und das Gleiche ist in der Ausgabe zu sehen. Die Ausgabe des obigen Programms ist im Schnappschuss unten dargestellt:
Es gibt eine Methode namens Union mit einer Methode, die im Hashset in C# vorhanden ist. Es wird verwendet, um die in zwei Sammlungen vorhandenen Elemente zu einer einzigen Sammlung zusammenzufassen, für die es aufgerufen wird. Betrachten Sie das folgende Programm.
Code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; HashSet < string > nameslist1 = new HashSet < string > { "Shobha", "Shivakumar", "Shardha", "Ravi", "Nagu" }; nameslist.UnionWith(nameslist1); foreach(var nam in nameslist) { Console.WriteLine(nam); } Console.ReadKey(); } } }
Im obigen Programm werden zwei einfache Hashsets vom Typ String erstellt. Zunächst werden die Zeichenfolgen Shobha, Shivakumar und Shardha zum ersten Hashset vom Typ Zeichenfolgen hinzugefügt. Anschließend werden die Zeichenfolgen Shobha, Shivakumar, Shardha, Ravi und Nagu zum zweiten Hashset vom Typ Zeichenfolgen hinzugefügt. Jetzt nutzen wir die Union mit der Methode is hashset, um die Elemente des ersten Hashsets und des zweiten Hashsets zu kombinieren. Die Ausgabe des obigen Programms ist im Schnappschuss unten dargestellt:
Es gibt eine Methode namens „Intersect“ mit der im Hashset in C# vorhandenen Methode. Es wird verwendet, um die in den beiden Sammlungen vorhandenen gemeinsamen Elemente in einer einzigen Sammlung zusammenzufassen, auf die es aufgerufen wird. Betrachten Sie das folgende Programm.
Code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; HashSet < string > nameslist1 = new HashSet < string > { "Shobha", "Shivakumar", "Shardha", "Ravi", "Nagu" }; nameslist.IntersectWith(nameslist1); foreach(var nam in nameslist) { Console.WriteLine(nam); } Console.ReadKey(); } } }
Im obigen Programm werden zwei einfache Hashsets vom Typ String erstellt. Zunächst werden die Zeichenfolgen Shobha, Shivakumar und Shardha zum ersten Hashset vom Typ Zeichenfolgen hinzugefügt. Als nächstes werden die Zeichenfolgen Shobha, Shivakumar, Shardha, Ravi und Nagu zum zweiten Hashset vom Typ Zeichenfolgen hinzugefügt. Jetzt verwenden wir das Überschneiden mit der Methode is hashset, um die gemeinsamen Elemente sowohl im ersten Hashset als auch im zweiten Hashset zu kombinieren. Die Ausgabe des obigen Programms ist im Schnappschuss unten dargestellt:
Es gibt eine Methode namens „Except“, deren Methode im Hashset in C# vorhanden ist. Es wird verwendet, um alle Elemente zu entfernen, die in allen beiden Sammlungen vorhanden sind, mit Ausnahme der Sammlung, für die es aufgerufen wird. Betrachten Sie das folgende Programm.
Code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; HashSet < string > nameslist1 = new HashSet < string > { "Shobha", "Shivakumar", "Shardha", "Ravi", "Nagu" }; nameslist1.ExceptWith(nameslist); foreach(var nam in nameslist1) { Console.WriteLine(nam); } Console.ReadKey(); } } }
Im obigen Programm werden zwei einfache Hashsets vom Typ String erstellt. Zunächst werden die Zeichenfolgen Shobha, Shivakumar und Shardha zum ersten Hashset vom Typ Zeichenfolgen hinzugefügt. Als nächstes werden die Zeichenfolgen Shobha, Shivakumar, Shardha, Ravi und Nagu zum zweiten Hashset vom Typ Zeichenfolgen hinzugefügt. Jetzt verwenden wir Except mit der Methode in hashset, um alle Elemente zu entfernen, die in allen Sammlungen vorhanden sind, mit Ausnahme der Sammlung, für die sie aufgerufen wird. Die Ausgabe des obigen Programms ist im Schnappschuss unten dargestellt:
Given below are the examples of C# HashSet:
C# program to illustrate the creation of a hashset and adding elements to the hashset.
Code:
using System; using System.Collections.Generic; class Hashset { // Calling the main method public static void Main() { // An hashset of even numbers is created HashSet<int> even = new HashSet<int>(); // Adding the elements in to the hashset for (int i = 0; i < 5; i++) { even.Add(2 * i); } // Printing the elements in the hashset foreach(int j in even) { Console.WriteLine(j); } } }
Output:
C# program to illustrate contains method in a hashset.
Code:
using System; using System.Collections.Generic; class hashset { // Calling the main method public static void Main() { // An hashset consisting of strings is created HashSet<string> cl = new HashSet<string>(); // Elements are inserted into the hashset cl.Add("Shobha"); cl.Add("Shivakumar"); cl.Add("Shardha"); cl.Add("Ravi"); // Using the contains method to check if an element is present in the collection if (cl.Contains("Shobha")) Console.WriteLine("The element specified is present"); else Console.WriteLine("The element specified is not present"); } }
Output:
Das obige ist der detaillierte Inhalt vonC# HashSet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!