logo

HashSet v C# s primeri

V C# je HashSet neurejena zbirka edinstvenih elementov. Ta zbirka je predstavljena v .NET 3.5 . Podpira implementacijo nizov in za shranjevanje uporablja zgoščeno tabelo. Ta zbirka je zbirke generičnega tipa in je definirana pod System.Collections.Generic imenski prostor. Na splošno se uporablja, ko želimo preprečiti, da bi se podvojeni elementi umestili v zbirko. Zmogljivost HashSeta je veliko boljša v primerjavi s seznamom.

Pomembne točke v zvezi s HashSet v C#

  • Razred HashSet implementira Zbirka , IEnumerable , IReadOnlyCollection , sept , IEnumerable , IDeserializationCallback , in ISerializable vmesniki.
  • V HashSet vrstni red elementa ni definiran. Ne morete razvrstiti elementov HashSet.
  • V HashSet-u morajo biti elementi edinstveni.
  • V HashSet podvojeni elementi niso dovoljeni.
  • Ponuja številne matematične množične operacije, kot so presečišče, unija in razlika.
  • Kapaciteta HashSeta je število elementov, ki jih lahko vsebuje.
  • HashSet je dinamična zbirka, kar pomeni, da se velikost HashSet samodejno poveča, ko so dodani novi elementi.
  • V HashSet lahko shranite samo iste vrste elementov.

Kako ustvariti HashSet?

Razred HashSet zagotavlja 7 različnih tipov konstruktorjev ki se uporabljajo za ustvarjanje HashSeta, tukaj uporabljamo samo HashSet() , konstruktor. Če želite prebrati več o konstruktorjih HashSet, se lahko obrnete na njih C# | Razred HashSet .



HashSet(): Uporablja se za ustvarjanje primerka razreda HashSet, ki je prazen in uporablja privzeti primerjalnik enakosti za vrsto niza.

Korak 1: Vključi System.Collections.Generic imenski prostor v vašem programu s pomočjo uporabo ključna beseda:

using System.Collections.Generic;>

2. korak: Ustvarite HashSet z uporabo razreda HashSet, kot je prikazano spodaj:



HashSet Hashset_name = new HashSet();>

3. korak: Če želite dodati elemente v svoj HashSet, uporabite Dodaj() metodo za dodajanje elementov v vaš HashSet. Prav tako lahko shranite elemente v svoj HashSet z uporabo inicializatorja zbirke.

4. korak: Do elementov HashSet se dostopa z uporabo a za vsakogar zanka. Kot je prikazano v spodnjem primeru.

primer:



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

>

>

Izhod

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

Kako odstraniti elemente iz HashSeta?

V HashSet-u lahko odstranite elemente iz HashSet-a. Razred HashSet ponuja tri različne metode za odstranjevanje elementov in metode so:

  • Odstrani(T) : Ta metoda se uporablja za odstranitev navedenega elementa iz predmeta HashSet.
  • OdstraniKje(predikat) : Ta metoda se uporablja za odstranitev vseh elementov, ki se ujemajo s pogoji, ki jih definira podani predikat, iz zbirke HashSet.
  • jasno : Ta metoda se uporablja za odstranitev vseh elementov iz predmeta HashSet.

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

>

>

Izhod

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

Set Operations

Razred HashSet ponuja tudi nekaj metod, ki se uporabljajo za izvajanje različnih operacij na nizih in metode so:

  • UnionWith(IEnumerable) : Ta metoda se uporablja za spreminjanje trenutnega objekta HashSet, da vsebuje vse elemente, ki so prisotni v njem samem, podani zbirki ali oboje.

primer:

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

>

>

Izhod

C C++ C# Java Ruby PHP Perl>
  • IntersectWith(IEnumerable) : Ta metoda se uporablja za spreminjanje trenutnega objekta HashSet, da vsebuje samo elemente, ki so prisotni v tem objektu in v navedeni zbirki.
    primer:

C#




kako pretvoriti int v niz java

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

>

>

Izhod

C++ Java>
  • RazenWith(IEnumerable) : Ta metoda se uporablja za odstranitev vseh elementov v navedeni zbirki iz trenutnega objekta HashSet.

primer:

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

>

>

Izhod

C C# Ruby>