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:

  1. 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.
  2. Elementer i listen bestilles mens ordren ikke er viktig i et sett, men det avhenger av implementeringen av settet.
  3. 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:

ListeSett
1. Kan inneholde dupliserte elementer1. Elementene må være unike
2. Rekkefølgen av elementer er viktig2. Rekkefølgen av elementer er ikke viktig, men det avhenger av implementeringen
3. Tilgang til elementer ved hjelp av indeks3. Selve elementer er indekser
4. Grensesnittet som brukes til å implementere listen er System.Collections.IList4. 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 -

  1. C # List vs Array
  2. C # Array vs List
  3. C # Funksjoner
  4. C # Kommandoer