I C# er HashSet en uordnet samling unike elementer. Denne samlingen introduseres i .NET 3.5 . Den støtter implementering av sett og bruker hash-tabellen for lagring. Denne samlingen er av den generiske typen samling og den er definert under System.Samlinger.Generisk navneområde. Det brukes vanligvis når vi ønsker å forhindre at dupliserte elementer plasseres i samlingen. Ytelsen til HashSet er mye bedre sammenlignet med listen.
Viktige punkter knyttet til HashSet i C#
- HashSet-klassen implementerer ICollection , IEnumerable , IReadOnlyCollection , sept , IEnumerable , IDeserializationCallback , og ISerialiserbar grensesnitt.
- I HashSet er rekkefølgen til elementet ikke definert. Du kan ikke sortere elementene i HashSet.
- I HashSet må elementene være unike.
- I HashSet er dupliserte elementer ikke tillatt.
- Det gir mange matematiske settoperasjoner, for eksempel kryss, forening og forskjell.
- Kapasiteten til et HashSet er antall elementer det kan inneholde.
- Et HashSet er en dynamisk samling betyr at størrelsen på HashSet automatisk økes når de nye elementene legges til.
- I HashSet kan du bare lagre den samme typen elementer.
Hvordan lage et hashsett?
HashSet-klassen gir 7 forskjellige typer konstruktører som brukes til å lage et HashSet, her bruker vi kun HashSet() , konstruktør. For å lese mer om HashSets konstruktører kan du referere til C# | HashSet-klasse .
HashSet(): Den brukes til å lage en forekomst av HashSet-klassen som er tom og bruker standard likhetssammenligner for setttypen.
Trinn 1: Inkludere System.Samlinger.Generisk navneområde i programmet ditt ved hjelp av ved hjelp av nøkkelord:
using System.Collections.Generic;>
Steg 2: Lag et HashSet ved å bruke HashSet-klassen som vist nedenfor:
HashSet Hashset_name = new HashSet();>
Trinn 3: Hvis du vil legge til elementer i HashSet, så bruk Legg til() metode for å legge til elementer i HashSet. Og du kan også lagre elementer i HashSet ved å bruke samlingsinitialiser.
Trinn 4: Elementene i HashSet får du tilgang til ved å bruke en for hver Løkke. Som vist i eksemplet nedenfor.
Eksempel:
C#
repl i java
// 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);> >}> >}> }> |
>
>Produksjon
Elements of myhash1: C C++ C# Java Ruby Elements of myhash2: 10 100 1000 10000 100000>
Hvordan fjerne elementer fra HashSet?
I HashSet har du lov til å fjerne elementer fra HashSet. HashSet-klassen gir tre forskjellige metoder for å fjerne elementer, og metodene er:
- Fjern (T) : Denne metoden brukes til å fjerne det angitte elementet fra et HashSet-objekt.
- RemoveWhere(Predikat) : Denne metoden brukes til å fjerne alle elementer som samsvarer med betingelsene definert av det spesifiserte predikatet fra en HashSet-samling.
- Klar : Denne metoden brukes til å fjerne alle elementer fra et HashSet-objekt.
Eksempel 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);> >}> }> |
>
>Produksjon
Total number of elements present in myhash: 5 Total number of elements present in myhash: 4 Total number of elements present in myhash:0>
Angi operasjoner
HashSet-klassen gir også noen metoder som brukes til å utføre forskjellige operasjoner på sett, og metodene er:
- UnionWith(IEnumerable) : Denne metoden brukes til å endre det gjeldende HashSet-objektet til å inneholde alle elementer som er tilstede i seg selv, den angitte samlingen eller begge deler.
Eksempel:
C#
hvordan konvertere heltall til streng java
// 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);> >}> >}> }> |
>
>Produksjon
C C++ C# Java Ruby PHP Perl>
- IntersectWith(IEnumerable) : Denne metoden brukes til å endre det gjeldende HashSet-objektet til å inneholde bare elementer som er tilstede i det objektet og i den angitte samlingen.
Eksempel:
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);> >}> >}> }> |
>
>Produksjon
C++ Java>
- ExceptWith(IEnumerable) : Denne metoden brukes til å fjerne alle elementer i den angitte samlingen fra det gjeldende HashSet-objektet.
Eksempel:
C#
skive java array
// 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);> >}> >}> }> |
>
>Produksjon
C C# Ruby>