Introduktion til liste vs sæt i C #

Liste og sæt er to af de mange datastrukturer, der understøttes af C #. Liste er en abstrakt datastruktur, der er lineær. Det består af elementer, der er arrangeret på en lineær måde. Det er muligt at tilføje elementer til listen på forskellige positioner. Liste har en egenskab kaldet længde (antal elementer på listen). I dette emne skal vi lære om Liste vs Sæt.

Bemærk : Vær forsigtig, da lister er forskellige fra matriser. Listerne har variabel størrelse, dvs. elementer kan tilføjes på listen, mens arrays har en fast størrelse.

Sæt er en abstrakt datastruktur. Sæt har unikke elementer, og rækkefølgen af ​​elementer er ikke vigtig. Elementer i sættet kan ikke nås via indekser. Selve elementerne er indekser i sættet, og et bestemt element kan fås ved hjælp af en foreach-loop.

Sammenligning mellem hoved og hoved mellem liste vs sæt (Infografik)

Nedenfor er de top 5 forskelle mellem Liste vs sæt

Vigtige forskelle

Følgende er de vigtigste takeaways:

  1. Listen kan indeholde duplikatelementer, mens sæt ikke kan, da et sæt kun kan have unikke elementer. Så brug sæt, hvis du vil have unikke elementer.
  2. Elementer på listen bestilles, mens ordren ikke er vigtig i et sæt, men det afhænger af implementeringen af ​​sættet.
  3. Elementer fås ved hjælp af indekser på listen, mens elementerne i sig selv er indekser i sættet. Derfor bruges foreach-loop til at få adgang til elementer i sættet. Det kan dog også bruges til at få adgang til elementer på listen som vist i koden på listen ovenfor.

Lad os se på nogle af metoderne til grænsefladerne på listen og sæt.

Liste

Følgende er nogle af de metoder, der implementeres af IList-grænsefladen:

  • int Tilføj (element) - for at tilføje elementet til listen (i slutningen) og for at returnere en værdi, der angiver en vellykket indsætning.
  • void Indsæt (int, element) - for at indsætte elementet på den givne position på listen
  • void Clear () - for at fjerne alle elementer fra listen
  • bool Indeholder (element) - for at kontrollere, om elementet findes på listen
  • void Fjern (element) - for at fjerne det givne element fra listen
  • void RemoveAt (int) - for at fjerne elementet i den givne position
  • int IndexOf (element) - for at returnere elementets position
  • dette (int) - det er en indekser, der giver adgang til elementet på den givne position

Følgende er en af ​​eksemplerne på 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+" ");
)
)
)

Produktion:

Sæt

Følgende er nogle af de metoder, der er implementeret af ISet-interface:

  • bool Tilføj (element) - Returnerer sandt, hvis elementet føjes til sættet, forudsat at det ikke er til stede i sættet ellers returnerer falsk
  • bool Indeholder (element) - Returnerer sandt, hvis elementet allerede er til stede i sættet, ellers returnerer det falsk
  • bool Fjern (element) - Returnerer sandt, hvis elementet findes i sættet og kan fjernes ellers returnerer falsk
  • void Clear () - For at fjerne alle elementer fra sættet
  • void IntersectWith (Sæt andre) - Det finder skæringspunktet mellem 2 sæt (de elementer, der forekommer i begge sæt), det sæt, som metoden kaldes til, og det andet sæt, der sendes som en parameter.
  • void UnionWith (Set other) - Den finder foreningen af ​​2 sæt (alle elementer i begge sæt), det sæt, som metoden kaldes til, og det andet sæt, der sendes som en parameter.
  • bool IsSubsetOf (Sæt andet) - Returnerer sandt, hvis sættet (som metoden kaldes på) er et undermængde af det andet sæt, der er bestået som en parameter, ellers returnerer falsk
  • bool IsSupersetOf (Sæt andet) - Returnerer sandt, hvis det sæt (som metoden kaldes på) er et supersæt for det andet sæt, der er bestået som en parameter, ellers returnerer falsk
  • int Count - Returnerer antallet af elementer i sættet

Følgende er en af ​​eksemplerne, der er angivet til sæt:

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+" ");
)
)
)

Produktion:

Sammenligningstabel mellem Liste vs Sæt

Følgende tabel illustrerer forskellen mellem liste og sæt:

ListeSæt
1. Kan indeholde duplikatelementer1. Elementerne skal være unikke
2. Elementernes rækkefølge er vigtig2. Elementernes rækkefølge er ikke vigtig, men det afhænger af implementeringen
3. Elementerne fås ved hjælp af indeks3. Selve elementer er indekser
4. Grænsefladen, der bruges til at implementere listen, er System.Collections.IList4. Grænsefladen, der bruges til at implementere sæt, er System.Collections.ISet
5. Listen implementeres som en statisk liste (ved hjælp af matrix) og dynamisk liste (linket liste)5. Sæt implementeres som hashset (hashtable) og sorteret sæt (rød-sort træbaseret)

Anbefalede artikler

Dette er en guide til Liste vs sæt. Her har vi drøftet List vs Set nøgleforskelle med infografik og sammenligningstabel. Du kan også se på de følgende artikler for at lære mere -

  1. C # Liste vs Array
  2. C # Array vs Liste
  3. C # Funktioner
  4. C # kommandoer

Kategori: