logo

HashSet C#:ssa esimerkein

C#:ssa HashSet on järjestämätön kokoelma ainutlaatuisia elementtejä. Tämä kokoelma esitellään vuonna .NET 3.5 . Se tukee joukkojen toteutusta ja käyttää hash-taulukkoa varastointiin. Tämä kokoelma on yleistyyppinen kokoelma ja se on määritelty alla System.Collections.Generic nimiavaruus. Sitä käytetään yleensä, kun haluamme estää päällekkäisten elementtien sijoittamisen kokoelmaan. HashSetin suorituskyky on paljon parempi verrattuna luetteloon.

Tärkeitä seikkoja, jotka liittyvät C#:n HashSetiin

  • HashSet-luokka toteuttaa ICollection , IEnumerable , IReadOnlyCollection , syyskuu , IEnumerable , IDeserialization Callback , ja ISerialisoitavissa käyttöliittymät.
  • HashSetissä elementin järjestystä ei ole määritetty. Et voi lajitella HashSet-elementtejä.
  • HashSetissä elementtien on oltava yksilöllisiä.
  • HashSetissä päällekkäiset elementit eivät ole sallittuja.
  • Se tarjoaa monia matemaattisia joukkooperaatioita, kuten leikkaus, liitos ja ero.
  • HashSetin kapasiteetti on elementtien lukumäärä, jonka se voi sisältää.
  • HashSet on dynaaminen kokoelma, mikä tarkoittaa, että HashSetin kokoa kasvatetaan automaattisesti, kun uusia elementtejä lisätään.
  • HashSetissä voit tallentaa vain samantyyppisiä elementtejä.

Kuinka luoda HashSet?

HashSet-luokka tarjoaa 7 erityyppistä rakentajaa joita käytetään HashSetin luomiseen, tässä käytämme vain HashSet() , rakentaja. Voit lukea lisää HashSetin rakentajista C# | HashSet-luokka .



HashSet(): Sitä käytetään luomaan HashSet-luokan ilmentymä, joka on tyhjä ja käyttää oletusarvoista tasa-arvovertailijaa joukkotyypille.

Vaihe 1: Sisältää System.Collections.Generic nimiavaruus ohjelmassasi avulla käyttämällä avainsana:

using System.Collections.Generic;>

Vaihe 2: Luo HashSet käyttämällä HashSet-luokkaa alla olevan kuvan mukaisesti:



HashSet Hashset_name = new HashSet();>

Vaihe 3: Jos haluat lisätä elementtejä HashSetiin, käytä Lisätä() tapa lisätä elementtejä HashSetiin. Ja voit myös tallentaa elementtejä HashSetiin käyttämällä kokoelman alustustoimintoa.

Vaihe 4: HashSetin elementtejä pääsee käsiksi käyttämällä a jokaiselle silmukka. Kuten alla olevassa esimerkissä näkyy.

Esimerkki:



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 =>>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 =>>HashSet<>int>>() {10,> >100,1000,10000,100000};> > >// Display elements of myhash2> >Console.WriteLine(>'Elements of myhash2:'>);> >foreach>(>var> value>in> myhash2)> >{> >Console.WriteLine(value);> >}> >}> }>

>

>

Lähtö

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

Kuinka poistaa elementtejä HashSetistä?

HashSetissä voit poistaa elementtejä HashSetistä. HashSet-luokka tarjoaa kolme erilaista menetelmää elementtien poistamiseen, ja menetelmät ovat:

  • Poista (T) : Tätä menetelmää käytetään määritetyn elementin poistamiseen HashSet-objektista.
  • RemoveWhere (predikaatti) : Tätä menetelmää käytetään poistamaan kaikki elementit, jotka vastaavat määritetyn predikaatin määrittämiä ehtoja HashSet-kokoelmasta.
  • Asia selvä : Tätä menetelmää käytetään poistamaan kaikki elementit HashSet-objektista.

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

>

>

Lähtö

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

Aseta toiminnot

HashSet-luokka tarjoaa myös joitain menetelmiä, joita käytetään suorittamaan erilaisia ​​toimintoja joukoille, ja menetelmät ovat:

  • Unioni kanssa (IEnumerable) : Tätä menetelmää käytetään nykyisen HashSet-objektin muokkaamiseen siten, että se sisältää kaikki elementit, jotka ovat läsnä itsessään, määritetyssä kokoelmassa tai molemmissa.

Esimerkki:

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 =>>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 =>>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ähtö

C C++ C# Java Ruby PHP Perl>
  • Leikkaa kanssa (IEnumerable) : Tätä menetelmää käytetään nykyisen HashSet-objektin muokkaamiseen siten, että se sisältää vain elementtejä, jotka ovat kyseisessä objektissa ja määritetyssä kokoelmassa.
    Esimerkki:

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

>

>

Lähtö

C++ Java>
  • Paitsi Kanssa (IEnumeerinen) : Tätä menetelmää käytetään poistamaan kaikki määritetyn kokoelman elementit nykyisestä HashSet-objektista.

Esimerkki:

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

>

>

Lähtö

C C# Ruby>