logo

HashSet i C# med exempel

I C# är HashSet en oordnad samling unika element. Denna samling introduceras i .NET 3.5 . Den stöder implementeringen av uppsättningar och använder hashtabellen för lagring. Denna samling är av den generiska typen samling och den definieras under System.Collectioner.Generisk namnutrymme. Det används vanligtvis när vi vill förhindra att duplicerade element placeras i samlingen. Prestandan för HashSet är mycket bättre jämfört med listan.

Viktiga punkter relaterade till HashSet i C#

  • Klassen HashSet implementerar ICollection , IEnumerable , IReadOnlyCollection , Sept , IEnumerable , IDeserializationCallback , och ISerialiserbar gränssnitt.
  • I HashSet är ordningen på elementet inte definierad. Du kan inte sortera elementen i HashSet.
  • I HashSet måste elementen vara unika.
  • I HashSet är dubbletter av element inte tillåtna.
  • Den tillhandahåller många matematiska uppsättningsoperationer, såsom korsning, förening och skillnad.
  • Kapaciteten hos en HashSet är antalet element den kan hålla.
  • En HashSet är en dynamisk samling innebär att storleken på HashSet automatiskt ökas när de nya elementen läggs till.
  • I HashSet kan du bara lagra samma typ av element.

Hur skapar man ett hashset?

HashSet-klassen tillhandahåller 7 olika typer av konstruktörer som används för att skapa ett HashSet, här använder vi bara HashSet() , konstruktör. För att läsa mer om HashSets konstruktörer kan du hänvisa till C# | HashSet-klass .

HashSet(): Den används för att skapa en instans av HashSet-klassen som är tom och använder standardlikhetsjämföraren för uppsättningstypen.



Steg 1: Omfatta System.Collectioner.Generisk namnutrymme i ditt program med hjälp av använder sig av nyckelord:

using System.Collections.Generic;>

Steg 2: Skapa ett HashSet med HashSet-klassen enligt nedan:

javascript global variabel
HashSet Hashset_name = new HashSet();>

Steg 3: Om du vill lägga till element i din HashSet, använd sedan Lägg till() metod för att lägga till element i din HashSet. Och du kan också lagra element i din HashSet med hjälp av samlingsinitieraren.

Steg 4: Elementen i HashSet nås genom att använda en för varje slinga. Som visas i exemplet nedan.

Exempel:

C#




// C# program to illustrate how to> // create hashset> using> System;> using> System.Collections.Generic;> class> GFG {> >// Main Method> >static> public> void> Main()> >{> >// Creating HashSet> >// Using HashSet class> >HashSet<>string>>myhash1 =>new> HashSet<>string>>();> >// Add the elements in HashSet> >// Using Add method> >myhash1.Add(>'C'>);> >myhash1.Add(>'C++'>);> >myhash1.Add(>'C#'>);> >myhash1.Add(>'Java'>);> >myhash1.Add(>'Ruby'>);> >Console.WriteLine(>'Elements of myhash1:'>);> >// Accessing elements of HashSet> >// Using foreach loop> >foreach>(>var> val>in> myhash1)> >{> >Console.WriteLine(val);> >}> >// Creating another HashSet> >// using collection initializer> >// to initialize HashSet> >HashSet<>int>>myhash2 =>new> HashSet<>int>>() {10,> >100,1000,10000,100000};> > >// Display elements of myhash2> >Console.WriteLine(>'Elements of myhash2:'>);> >foreach>(>var> value>in> myhash2)> >{> >Console.WriteLine(value);> >}> >}> }>

>

>

Produktion

Elements of myhash1: C C++ C# Java Ruby Elements of myhash2: 10 100 1000 10000 100000>

Hur tar man bort element från HashSet?

I HashSet får du ta bort element från HashSet. HashSet-klassen tillhandahåller tre olika metoder för att ta bort element och metoderna är:

  • Ta bort(T) : Denna metod används för att ta bort det angivna elementet från ett HashSet-objekt.
  • RemoveWhere(Predikat) : Den här metoden används för att ta bort alla element som matchar villkoren som definieras av det angivna predikatet från en HashSet-samling.
  • Klar : Denna metod används för att ta bort alla element från ett HashSet-objekt.

Exempel 1:

C#




världens finaste leende
// C# program to illustrate how to> // remove elements of HashSet> using> System;> using> System.Collections.Generic;> class> GFG {> >// Main Method> >static> public> void> Main()> >{> >// Creating HashSet> >// Using HashSet class> >HashSet<>string>>myhash =>new> HashSet<>string>>();> >// Add the elements in HashSet> >// Using Add method> >myhash.Add(>'C'>);> >myhash.Add(>'C++'>);> >myhash.Add(>'C#'>);> >myhash.Add(>'Java'>);> >myhash.Add(>'Ruby'>);> >// Before using Remove method> >Console.WriteLine(>'Total number of elements present (Before Removal)'>+> >' in myhash: {0}'>, myhash.Count);> >// Remove element from HashSet> >// Using Remove method> >myhash.Remove(>'Ruby'>);> >// After using Remove method> >Console.WriteLine(>'Total number of elements present (After Removal)'>+> >' in myhash: {0}'>, myhash.Count);> >// Remove all elements from HashSet> >// Using Clear method> >myhash.Clear();> >Console.WriteLine(>'Total number of elements present'>+> >' in myhash:{0}'>, myhash.Count);> >}> }>

>

>

Produktion

Total number of elements present in myhash: 5 Total number of elements present in myhash: 4 Total number of elements present in myhash:0>

Ställ in operationer

HashSet-klassen tillhandahåller också några metoder som används för att utföra olika operationer på set och metoderna är:

  • UnionWith(IEnumerable) : Denna metod används för att modifiera det aktuella HashSet-objektet så att det innehåller alla element som finns i sig själv, den angivna samlingen eller båda.

Exempel:

C#

sträng till itn




// C# program to illustrate set operations> using> System;> using> System.Collections.Generic;> class> GFG {> >static> public> void> Main()> >{> >// Creating HashSet> >// Using HashSet class> >HashSet<>string>>myhash1 =>new> HashSet<>string>>();> >// Add the elements in HashSet> >// Using Add method> >myhash1.Add(>'C'>);> >myhash1.Add(>'C++'>);> >myhash1.Add(>'C#'>);> >myhash1.Add(>'Java'>);> >myhash1.Add(>'Ruby'>);> >// Creating another HashSet> >// Using HashSet class> >HashSet<>string>>myhash2 =>new> HashSet<>string>>();> >// Add the elements in HashSet> >// Using Add method> >myhash2.Add(>'PHP'>);> >myhash2.Add(>'C++'>);> >myhash2.Add(>'Perl'>);> >myhash2.Add(>'Java'>);> >// Using UnionWith method> >myhash1.UnionWith(myhash2);> >foreach>(>var> ele>in> myhash1)> >{> >Console.WriteLine(ele);> >}> >}> }>

lägga till i array java

>

>

Produktion

C C++ C# Java Ruby PHP Perl>
  • IntersectWith(IEnumerable) : Denna metod används för att modifiera det aktuella HashSet-objektet så att det bara innehåller element som finns i det objektet och i den angivna samlingen.
    Exempel:

C#




// C# program to illustrate set operations> using> System;> using> System.Collections.Generic;> class> GFG {> >// Main Method> >static> public> void> Main()> >{> >// Creating HashSet> >// Using HashSet class> >HashSet<>string>>myhash1 =>new> HashSet<>string>>();> >// Add the elements in HashSet> >// Using Add method> >myhash1.Add(>'C'>);> >myhash1.Add(>'C++'>);> >myhash1.Add(>'C#'>);> >myhash1.Add(>'Java'>);> >myhash1.Add(>'Ruby'>);> >// Creating another HashSet> >// Using HashSet class> >HashSet<>string>>myhash2 =>new> HashSet<>string>>();> >// Add the elements in HashSet> >// Using Add method> >myhash2.Add(>'PHP'>);> >myhash2.Add(>'C++'>);> >myhash2.Add(>'Perl'>);> >myhash2.Add(>'Java'>);> >// Using IntersectWith method> >myhash1.IntersectWith(myhash2);> >foreach>(>var> ele>in> myhash1)> >{> >Console.WriteLine(ele);> >}> >}> }>

>

mysql list användare

>

Produktion

C++ Java>
  • ExceptWith(IEnumerable) : Denna metod används för att ta bort alla element i den angivna samlingen från det aktuella HashSet-objektet.

Exempel:

C#




// C# program to illustrate set operations> using> System;> using> System.Collections.Generic;> class> GFG {> >// Main Method> >static> public> void> Main()> >{> >// Creating HashSet> >// Using HashSet class> >HashSet<>string>>myhash1 =>new> HashSet<>string>>();> >// Add the elements in HashSet> >// Using Add method> >myhash1.Add(>'C'>);> >myhash1.Add(>'C++'>);> >myhash1.Add(>'C#'>);> >myhash1.Add(>'Java'>);> >myhash1.Add(>'Ruby'>);> >// Creating another HashSet> >// Using HashSet class> >HashSet<>string>>myhash2 =>new> HashSet<>string>>();> >// Add the elements in HashSet> >// Using Add method> >myhash2.Add(>'PHP'>);> >myhash2.Add(>'C++'>);> >myhash2.Add(>'Perl'>);> >myhash2.Add(>'Java'>);> >// Using ExceptWith method> >myhash1.ExceptWith(myhash2);> >foreach>(>var> ele>in> myhash1)> >{> >Console.WriteLine(ele);> >}> >}> }>

>

>

Produktion

C C# Ruby>