Inleiding tot lijst versus set in C #

Lijst en Set zijn twee van de vele gegevensstructuren die door C # worden ondersteund. Lijst is een abstracte gegevensstructuur die lineair is. Het bestaat uit elementen die op een lineaire manier zijn gerangschikt. Het is mogelijk om elementen op verschillende posities aan de lijst toe te voegen. Lijst heeft een eigenschap genaamd lengte (aantal elementen in de lijst). In dit onderwerp gaan we meer te weten komen over Lijst versus Set.

Opmerking : wees voorzichtig, want lijsten verschillen van arrays. De lijsten hebben een variabele grootte, dwz dat elementen aan de lijst kunnen worden toegevoegd, terwijl arrays een vaste grootte hebben.

Set is een abstracte gegevensstructuur. Set heeft unieke elementen en de volgorde van elementen is niet belangrijk. Elementen in de set zijn niet toegankelijk via indices. De elementen zelf zijn indices in de set en een bepaald element is toegankelijk via een foreach-lus.

Head to Head-vergelijking tussen lijst versus set (infographics)

Hieronder staan ​​de top 5 verschillen tussen Lijst versus Set

Belangrijkste verschillen

Hier volgen de belangrijkste afhaalrestaurants:

  1. De lijst kan dubbele elementen bevatten, terwijl een set dat niet kan, aangezien een set alleen unieke elementen kan bevatten. Gebruik dus set als u unieke elementen wilt.
  2. Elementen in de lijst zijn geordend terwijl de volgorde niet belangrijk is in een set, maar het hangt af van de implementatie van de set.
  3. Elementen worden geopend met behulp van indices in de lijst, terwijl elementen zelf indices zijn in de set. Daarom wordt elke lus gebruikt om toegang te krijgen tot elementen van de set. Het kan echter ook worden gebruikt om toegang te krijgen tot elementen van de lijst zoals weergegeven in de code van de bovenstaande lijst.

Laten we eens kijken naar enkele methoden van de interfaces van de lijst en set.

Lijst

Hier volgen enkele van de methoden die door de IList-interface zijn geïmplementeerd:

  • int Toevoegen (element) - om het element aan de lijst toe te voegen (aan het einde) en een waarde terug te geven die een succesvolle invoeging aangeeft.
  • void Insert (int, element) - om het element op de gegeven positie in de lijst in te voegen
  • void Clear () - om alle elementen uit de lijst te verwijderen
  • bool Bevat (element) - om te controleren of het element in de lijst aanwezig is
  • void Remove (element) - om het gegeven element uit de lijst te verwijderen
  • void RemoveAt (int) - om het element op de gegeven positie te verwijderen
  • int IndexOf (element) - om de positie van het element terug te geven
  • this (int) - het is een indexer die toegang geeft tot het element op de gegeven positie

Hierna volgt een van de voorbeeldcodes voor de lijst:

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

Output:

reeks

Hier volgen enkele van de methoden die door de ISet-interface zijn geïmplementeerd:

  • bool Add (element) - Retourneert true als het element aan de set is toegevoegd, op voorwaarde dat het niet in de set aanwezig is, retourneert false
  • bool Bevat (element) - Retourneert true als het element al in de set aanwezig is, anders retourneert het false
  • bool Remove (element) - Retourneert true als het element in de set bestaat en kan worden verwijderd, anders retourneert false
  • void Clear () - Om alle elementen uit de set te verwijderen
  • void IntersectWith (Set other) - Het vindt het snijpunt van 2 sets (die elementen die in beide sets voorkomen), de set waarop de methode wordt aangeroepen en de andere set die als parameter wordt doorgegeven.
  • void UnionWith (Set other) - Het vindt de unie van 2 sets (alle elementen in beide sets), de set waarop de methode wordt aangeroepen en de andere set die als parameter wordt doorgegeven.
  • bool IsSubsetOf (Set other) - Retourneert true als de set (waarop de methode wordt aangeroepen) een subset is van de andere set die als parameter wordt doorgegeven, anders retourneert false
  • bool IsSupersetOf (Set other) - Retourneert true als de set (waarop de methode wordt aangeroepen) een superset is van de andere set die als parameter wordt doorgegeven, anders retourneert false
  • int Count - Retourneert het aantal elementen in de set

Hierna volgt een van de voorbeeldcode voor set:

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

Output:

Vergelijkingstabel tussen lijst versus set

De volgende tabel illustreert het verschil tussen lijst en set:

Lijstreeks
1. Kan dubbele elementen bevatten1. Elementen moeten uniek zijn
2. Volgorde van elementen is belangrijk2. Volgorde van elementen is niet belangrijk, maar hangt af van de implementatie
3. Elementen zijn toegankelijk via index3. Elementen zelf zijn indices
4. De interface die wordt gebruikt om de lijst te implementeren is System.Collections.IList4. De interface die wordt gebruikt om de set te implementeren is System.Collections.ISet
5. De lijst is geïmplementeerd als een statische lijst (met behulp van array) en dynamische lijst (gekoppelde lijst)5. Sets worden geïmplementeerd als hashset (hashtable) en gesorteerde set (rood-zwart boomgebaseerd)

Aanbevolen artikelen

Dit is een gids voor Lijst versus Set. Hier hebben we de lijst versus set belangrijkste verschillen met infographics en vergelijkingstabel besproken. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. C # lijst versus array
  2. C # Array versus lijst
  3. C # Functies
  4. C # Commando's