HashSet C # su pavyzdžiais

C# kalboje HashSet yra netvarkinga unikalių elementų kolekcija. Ši kolekcija pristatoma m .NET 3.5 . Jis palaiko rinkinių įgyvendinimą ir saugojimui naudoja maišos lentelę. Ši kolekcija yra bendro tipo rinkinio ir ji apibrėžta Sistema.Kolekcijos.Bendra vardų erdvė. Paprastai jis naudojamas, kai norime, kad į kolekciją nebūtų patalpinti pasikartojantys elementai. „HashSet“ našumas yra daug geresnis, palyginti su sąrašu.

Svarbūs dalykai, susiję su HashSet C#

  • HashSet klasė įgyvendina Ikolekcija , Įskaitomas , IReadOnlyCollection , rugsėjo mėn , Įskaitomas , IDeserializationCallback , ir Galima serializuoti sąsajos.
  • „HashSet“ elemento tvarka nėra apibrėžta. Negalite rūšiuoti HashSet elementų.
  • „HashSet“ elementai turi būti unikalūs.
  • HashSet dubliuoti elementai neleidžiami.
  • Jame pateikiama daug matematinių rinkinių operacijų, tokių kaip sankirta, sąjunga ir skirtumas.
  • HashSet talpa yra elementų, kuriuos jis gali turėti, skaičius.
  • HashSet yra dinaminis rinkinys, reiškiantis, kad HashSet dydis automatiškai padidinamas, kai pridedami nauji elementai.
  • „HashSet“ galite saugoti tik to paties tipo elementus.

Kaip sukurti maišos rinkinį?

HashSet klasė suteikia 7 skirtingų tipų konstruktoriai kurie naudojami kuriant HashSet, čia naudojame tik HashSet () , konstruktorius. Norėdami sužinoti daugiau apie „HashSet“ konstruktorius, galite pasiskaityti C# | HashSet klasė .

HashSet (): Jis naudojamas sukurti tuščią HashSet klasės egzempliorių ir naudoja numatytąjį rinkinio tipo lygybės lygintuvą.

1 žingsnis: Įtraukti Sistema.Kolekcijos.Bendra vardų erdvę savo programoje naudodami naudojant raktažodis:

using System.Collections.Generic; 

2 žingsnis: Sukurkite HashSet naudodami HashSet klasę, kaip parodyta toliau:

HashSet Hashset_name = new HashSet(); 

3 veiksmas: Jei norite pridėti elementų į savo HashSet, naudokite Papildyti() būdas pridėti elementus į savo HashSet. Taip pat galite saugoti elementus savo „HashSet“ naudodami kolekcijos iniciatorių.

4 veiksmas: HashSet elementai pasiekiami naudojant a kiekvienam kilpa. Kaip parodyta toliau pateiktame pavyzdyje.

Pavyzdys:

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 =>> );> > 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 =>> );> > foreach> (> var> value> in> myhash2)> > {> > Console.WriteLine(value);> > }> > }> }>

Išvestis

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

Kaip pašalinti elementus iš HashSet?

„HashSet“ galite pašalinti elementus iš „HashSet“. „HashSet“ klasėje pateikiami trys skirtingi elementų pašalinimo būdai ir yra šie:

  • Pašalinti (T) : Šis metodas naudojamas nurodytam elementui pašalinti iš HashSet objekto.
  • Pašalinti kur (predikatas) : Šis metodas naudojamas pašalinti iš HashSet rinkinio visus elementus, atitinkančius nurodyto predikato apibrėžtas sąlygas.
  • Aišku : Šis metodas naudojamas pašalinti visus elementus iš HashSet objekto.

1 pavyzdys:

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

Išvestis

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

Nustatyti operacijas

„HashSet“ klasėje taip pat pateikiami keli metodai, naudojami įvairioms rinkinių operacijoms atlikti, ir šie metodai:

  • Sąjunga su (įskaitoma) : Šis metodas naudojamas dabartiniam HashSet objektui modifikuoti, kad jame būtų visi elementai, esantys pačiame, nurodytoje kolekcijoje arba abu.

Pavyzdys:

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 =>> );> > myhash1.Add(> 'C++'> );> > myhash1.Add(> 'C#'> );> > myhash1.Add(> 'Java'> );> > myhash1.Add(> 'Ruby'> );> > // Creating another HashSet> > // Using HashSet class> > HashSet <> string> >myhash2 =>> );> > myhash2.Add(> 'C++'> );> > myhash2.Add(> 'Perl'> );> > myhash2.Add(> 'Java'> );> > // Using UnionWith method> > myhash1.UnionWith(myhash2);> > foreach> (> var> ele> in> myhash1)> > {> > Console.WriteLine(ele);> > }> > }> }>

Išvestis

C C++ C# Java Ruby PHP Perl 
  • Susikryžiuoti su (skaitmuo) : Šis metodas naudojamas modifikuoti dabartinį HashSet objektą, kad jame būtų tik elementai, esantys tame objekte ir nurodytoje kolekcijoje.
    Pavyzdys:

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 =>> );> > myhash1.Add(> 'C++'> );> > myhash1.Add(> 'C#'> );> > myhash1.Add(> 'Java'> );> > myhash1.Add(> 'Ruby'> );> > // Creating another HashSet> > // Using HashSet class> > HashSet <> string> >myhash2 =>> );> > myhash2.Add(> 'C++'> );> > myhash2.Add(> 'Perl'> );> > myhash2.Add(> 'Java'> );> > // Using IntersectWith method> > myhash1.IntersectWith(myhash2);> > foreach> (> var> ele> in> myhash1)> > {> > Console.WriteLine(ele);> > }> > }> }>

Išvestis

C++ Java 
  • Išskyrus su (įskaitomas) : Šis metodas naudojamas pašalinti visus nurodytos kolekcijos elementus iš esamo HashSet objekto.

Pavyzdys:

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 =>> );> > myhash1.Add(> 'C++'> );> > myhash1.Add(> 'C#'> );> > myhash1.Add(> 'Java'> );> > myhash1.Add(> 'Ruby'> );> > // Creating another HashSet> > // Using HashSet class> > HashSet <> string> >myhash2 =>> );> > myhash2.Add(> 'C++'> );> > myhash2.Add(> 'Perl'> );> > myhash2.Add(> 'Java'> );> > // Using ExceptWith method> > myhash1.ExceptWith(myhash2);> > foreach> (> var> ele> in> myhash1)> > {> > Console.WriteLine(ele);> > }> > }> }>

Išvestis

C C# Ruby