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:
java poeilutė yra
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 =>>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 =>>int>>() {10,> >100,1000,10000,100000};> > >// Display elements of myhash2> >Console.WriteLine(>'Elements of 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#
Aktorė Rakul Preet Singh
// 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 =>>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);> >}> }> |
>
>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#
python surūšiuota eilutė
// 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 =>>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 =>>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);> >}> >}> }> |
>
>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 =>>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 =>>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);> >}> >}> }> |
padaryti apvalkalo scenarijų vykdomąjį
>
>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 =>>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 =>>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);> >}> >}> }> |
Java konvertuoja sveikąjį skaičių į eilutę
>
>Išvestis
C C# Ruby>