logo

HashSet v C# s príkladmi

V C# je HashSet neusporiadaná zbierka jedinečných prvkov. Táto kolekcia je predstavená v .NET 3.5 . Podporuje implementáciu sád a na ukladanie používa hash tabuľku. Táto kolekcia je kolekciou generického typu a je definovaná pod System.Collections.Generic menný priestor. Vo všeobecnosti sa používa, keď chceme zabrániť umiestneniu duplicitných prvkov do kolekcie. Výkon HashSet je oveľa lepší v porovnaní so zoznamom.

Dôležité body súvisiace s HashSet v C#

  • Trieda HashSet implementuje ICollection , IEpočetné , IReadOnlyCollection , sept , IEpočetné , IDeserializationCallback , a ISerializovateľné rozhrania.
  • V HashSet nie je definované poradie prvku. Nemôžete triediť prvky HashSet.
  • V HashSet musia byť prvky jedinečné.
  • V HashSet nie sú povolené duplicitné prvky.
  • Poskytuje mnoho matematických množinových operácií, ako sú priesečník, spojenie a rozdiel.
  • Kapacita HashSet je počet prvkov, ktoré môže obsahovať.
  • HashSet je dynamická kolekcia znamená, že veľkosť HashSet sa automaticky zväčší, keď sa pridajú nové prvky.
  • V HashSet môžete uložiť iba rovnaký typ prvkov.

Ako vytvoriť HashSet?

Trieda HashSet poskytuje 7 rôznych typov konštruktérov ktoré sa používajú na vytvorenie HashSet, tu používame iba HashSet() , konštruktér. Ak si chcete prečítať viac o konštruktoroch HashSet, môžete sa obrátiť na C# | Trieda HashSet .



HashSet(): Používa sa na vytvorenie inštancie triedy HashSet, ktorá je prázdna a používa predvolený porovnávač rovnosti pre typ sady.

Krok 1: Zahrnúť System.Collections.Generic menný priestor vo vašom programe pomocou použitím kľúčové slovo:

using System.Collections.Generic;>

Krok 2: Vytvorte HashSet pomocou triedy HashSet, ako je uvedené nižšie:



HashSet Hashset_name = new HashSet();>

Krok 3: Ak chcete pridať prvky do svojej HashSet, použite Pridať () metóda na pridanie prvkov do vašej HashSet. A môžete tiež ukladať prvky vo svojej HashSet pomocou inicializátora kolekcie.

Krok 4: Prvky HashSet sú prístupné pomocou a pre každý slučka. Ako je uvedené v príklade nižšie.

Príklad:



C#


java konvertuje celé číslo na reťazec



// 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);> >}> >}> }>

>

>

Výkon

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

Ako odstrániť prvky z HashSet?

V HashSet máte povolené odstraňovať prvky z HashSet. Trieda HashSet poskytuje tri rôzne metódy na odstránenie prvkov a tieto metódy sú:

  • Odstrániť (T) : Táto metóda sa používa na odstránenie zadaného prvku z objektu HashSet.
  • RemoveWhere (Predicate) : Táto metóda sa používa na odstránenie všetkých prvkov, ktoré zodpovedajú podmienkam definovaným zadaným predikátom z kolekcie HashSet.
  • jasný : Táto metóda sa používa na odstránenie všetkých prvkov z objektu HashSet.

Príklad 1:

C#




// 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);> >}> }>

>

>

Výkon

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

Nastaviť operácie

Trieda HashSet tiež poskytuje niektoré metódy, ktoré sa používajú na vykonávanie rôznych operácií na množinách a tieto metódy sú:

  • UnionWith(IEnumerable) : Táto metóda sa používa na úpravu aktuálneho objektu HashSet tak, aby obsahoval všetky prvky, ktoré sú v ňom prítomné, v zadanej kolekcii alebo v oboch.

Príklad:

C#




// 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);> >}> >}> }>

>

>

Výkon

C C++ C# Java Ruby PHP Perl>
  • IntersectWith(IEnumerable) : Táto metóda sa používa na úpravu aktuálneho objektu HashSet tak, aby obsahoval iba prvky, ktoré sú prítomné v tomto objekte a v zadanej kolekcii.
    Príklad:

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);> >}> >}> }>

>

>

Výkon

C++ Java>
  • ExceptWith(IEnumerable) : Táto metóda sa používa na odstránenie všetkých prvkov v zadanej kolekcii z aktuálneho objektu HashSet.

Príklad:

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);> >}> >}> }>

>

1 milión koľko 0

>

Výkon

C C# Ruby>