Introduksjon til liste vs sett i C #
Liste og sett er to av de mange datastrukturene som støttes av C #. Liste er en abstrakt datastruktur som er lineær. Den består av elementer arrangert på en lineær måte. Det er mulig å legge elementer til listen på forskjellige posisjoner. Liste har en egenskap som kalles lengde (antall elementer i listen). I dette emnet skal vi lære om List vs Set.
Merk : Vær forsiktig da lister er forskjellige fra matriser. Listene har variabel størrelse, dvs. elementer kan legges til i listen mens matriser har fast størrelse.
Sett er en abstrakt datastruktur. Set har unike elementer og rekkefølgen på elementer er ikke viktig. Elementene i settet kan ikke nås via indekser. Elementene i seg selv er indekser i settet, og et bestemt element kan nås ved hjelp av en foreach-loop.
Sammenligning fra topp til hode mellom liste og sett (Infographics)
Nedenfor er de topp 5 forskjellene mellom List vs Set
Viktige forskjeller
Følgende er de viktigste takeaways:
- Listen kan inneholde dupliserte elementer mens settet ikke kan. Ett sett kan bare ha unike elementer. Så bruk sett hvis du vil ha unike elementer.
- Elementer i listen bestilles mens ordren ikke er viktig i et sett, men det avhenger av implementeringen av settet.
- Elementer åpnes ved hjelp av indekser i listen, mens elementene i seg selv er indekser i settet. Derfor brukes foreach-loop for å få tilgang til elementer i settet. Den kan imidlertid også brukes til å få tilgang til elementer i listen som vist i koden til listen over.
La oss se på noen av metodene til grensesnittene til listen og sett.
Liste
Følgende er noen av metodene implementert av IList-grensesnittet:
- int Legg til (element) - for å legge elementet til listen (på slutten) og returnere en verdi som indikerer vellykket innsetting.
- void Sett inn (int, element) - for å sette inn elementet på den gitte posisjonen i listen
- void Clear () - for å fjerne alle elementer fra listen
- bool Inneholder (element) - for å sjekke om elementet er til stede i listen
- void Fjern (element) - for å fjerne det gitte elementet fra listen
- void RemoveAt (int) - for å fjerne elementet i den gitte posisjonen
- int IndexOf (element) - for å returnere elementets posisjon
- dette (int) - det er en indekser som gir tilgang til elementet på den gitte posisjonen
Følgende er en av eksemplekoder for listen:
// C# Program to remove the element at // the specified index of the List using System; using System.Collections.Generic;
class StaticList (
// Main Method public static void Main(String() args)
(
// Creating an List of Integers
List firstlist = new List();
// Adding elements to List firstlist.Add(17); firstlist.Add(19); firstlist.Add(21); firstlist.Add(9); firstlist.Add(75); firstlist.Add(19); firstlist.Add(73);
Console.WriteLine("Elements Present in the List:");
// Displaying the elements of List for(int k=0;k (
Console.Write(firstlist(k)+" ");
)
Console.WriteLine(" ");
// removing the element at index 3
Console.WriteLine("Removing the element at index 3");
// 9 will be removed from the List // and 75 will come at index 3 firstlist.RemoveAt(3);
// Displaying the elements of List foreach(int k in firstlist)
(
Console.Write(k+" ");
)
)
)// C# Program to remove the element at // the specified index of the List using System; using System.Collections.Generic;
class StaticList (
// Main Method public static void Main(String() args)
(
// Creating an List of Integers
List firstlist = new List();
// Adding elements to List firstlist.Add(17); firstlist.Add(19); firstlist.Add(21); firstlist.Add(9); firstlist.Add(75); firstlist.Add(19); firstlist.Add(73);
Console.WriteLine("Elements Present in the List:");
// Displaying the elements of List for(int k=0;k (
Console.Write(firstlist(k)+" ");
)
Console.WriteLine(" ");
// removing the element at index 3
Console.WriteLine("Removing the element at index 3");
// 9 will be removed from the List // and 75 will come at index 3 firstlist.RemoveAt(3);
// Displaying the elements of List foreach(int k in firstlist)
(
Console.Write(k+" ");
)
)
)
Produksjon:
Sett
Følgende er noen av metodene implementert av ISet-grensesnittet:
- bool Legg til (element) - Returnerer sann hvis elementet legges til settet forutsatt at det ikke er til stede i settet ellers returnerer falsk
- bool Inneholder (element) - Returnerer sann hvis elementet allerede er til stede i settet, ellers returnerer det usant
- bool Fjern (element) - Returnerer sann hvis elementet finnes i settet og kan fjernes ellers returnerer usant
- void Clear () - For å fjerne alle elementer fra settet
- void IntersectWith (Set other) - Den finner skjæringspunktet mellom 2 sett (de elementene som forekommer i begge settene), settet som metoden heter og det andre settet som sendes som parameter.
- void UnionWith (Set other) - Den finner foreningen av 2 sett (alle elementer i begge settene), settet som metoden heter og det andre settet som sendes som parameter.
- bool IsSubsetOf (Angi andre) - Returnerer sann hvis settet (som metoden heter) som et undersett av det andre settet som er passert som en parameter, ellers returnerer usant
- bool IsSupersetOf (Sett andre) - Returnerer true hvis settet (som metoden heter) som et supersett fra det andre settet som er passert som en parameter, ellers returnerer usant
- int Count - Returnerer antall elementer i settet
Følgende er en av eksemplene koden for sett:
using System;
using System.Collections.Generic;
class HS (
// Driver code
public static void Main()
(
// Creating a HashSet of odd numbers
HashSet odd = new HashSet();
// Inserting elements in HashSet for (int i = 0; i < 5; i++) ( odd.Add(2 * i + 1);
)
Console.WriteLine("Elements in the HashSet:"); // Displaying the elements in the HashSet
foreach(int i in odd)
(
Console.Write(i+" ");
)
Console.WriteLine("\nTotal elements in the HashSet = "+odd.Count);
Console.WriteLine("Is it possible to remove 7? : "+odd.Remove(7));
Console.WriteLine("New HashSet = ");
foreach(int i in odd)
(
Console.Write(i+" ");
)
)
)
Produksjon:
Sammenligningstabell mellom Liste vs sett
Følgende tabell illustrerer forskjellen mellom liste og sett:
Liste | Sett |
1. Kan inneholde dupliserte elementer | 1. Elementene må være unike |
2. Rekkefølgen av elementer er viktig | 2. Rekkefølgen av elementer er ikke viktig, men det avhenger av implementeringen |
3. Tilgang til elementer ved hjelp av indeks | 3. Selve elementer er indekser |
4. Grensesnittet som brukes til å implementere listen er System.Collections.IList | 4. Grensesnittet som brukes til å implementere settet er System.Collections.ISet |
5. Listen implementeres som en statisk liste (ved bruk av matrise) og dynamisk liste (lenket liste) | 5. Sett implementeres som hashset (hashtable) og sortert sett (rød-svart trebasert) |
Anbefalte artikler
Dette er en guide til List vs Set. Her har vi diskutert List vs Set nøkkelforskjeller med infografikk og sammenligningstabell. Du kan også se på følgende artikler for å lære mer -
- C # List vs Array
- C # Array vs List
- C # Funksjoner
- C # Kommandoer