Introducere în listă vs setată în C #

Lista și setul sunt două dintre numeroasele structuri de date acceptate de C #. Lista este o structură abstractă de date care este liniară. El cuprinde elemente dispuse liniar. Este posibil să adăugați elemente în listă în diferite poziții. List are o proprietate numită lungime (număr de elemente din listă). În acest subiect, vom afla despre Listă vs Setare.

Notă : Aveți grijă, deoarece listele diferă de tablouri. Listele au dimensiuni variabile, adică elemente pot fi adăugate în listă în timp ce matricile au dimensiuni fixe.

Setul este o structură de date abstractă. Setul are elemente unice, iar ordinea elementelor nu este importantă. Elementele din set nu pot fi accesate prin indici. Elementele în sine sunt indici din set și un anumit element poate fi accesat folosind o buclă foreach.

Comparație dintre cap și cap între listă și set (infografie)

Mai jos se află primele 5 diferențe între Listă și Set

Diferențele cheie

Următoarele sunt principalele de transport:

  1. Lista poate conține elemente duplicate în timp ce setul nu poate, deoarece un set poate avea doar elemente unice. Așa că folosiți set dacă doriți elemente unice.
  2. Elementele din listă sunt comandate în timp ce comanda nu este importantă într-un set, dar depinde de implementarea setului.
  3. Accesează elementele folosind indici din listă, în timp ce elementele în sine sunt indici din set. Prin urmare, bucla de foreach este utilizată pentru a accesa elemente ale setului. Cu toate acestea, poate fi folosit și pentru a accesa elemente ale listei, așa cum se arată în codul listei de mai sus.

Să ne uităm la unele dintre metodele interfețelor listei și setăm.

Listă

Iată câteva dintre metodele implementate de interfața IList:

  • int Adăugați (element) - pentru a adăuga elementul la listă (la sfârșit) și pentru a returna o valoare care indică inserarea cu succes.
  • void Insert (int, element) - pentru a insera elementul în poziția dată în listă
  • void Clear () - pentru a elimina toate elementele din listă
  • bool Conține (element) - pentru a verifica dacă elementul este prezent în listă
  • void Remove (element) - pentru a elimina elementul dat din listă
  • void RemoveAt (int) - pentru a elimina elementul în poziția dată
  • int IndexOf (element) - pentru a returna poziția elementului
  • this (int) - este un indexator care permite accesul la elementul din poziția dată

Următorul este unul dintre exemplele de cod pentru listă:

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

ieşire:

A stabilit

Iată câteva dintre metodele implementate de interfața ISet:

  • bool Add (element) - Se întoarce adevărat dacă elementul este adăugat la set cu condiția să nu fie prezent în setul altceva returnează fals
  • bool Conține (element) - Returnează adevărat dacă elementul este deja prezent în set, altfel se returnează fals
  • bool Remove (element) - Se întoarce adevărat dacă elementul există în set și poate fi eliminat altfel returnează false
  • void Clear () - Pentru a elimina toate elementele din set
  • void IntersectWith (Set other) - Găsește intersecția a 2 seturi (acele elemente care apar în ambele seturi), setul pe care se numește metoda și celălalt set care este trecut ca parametru.
  • void UnionWith (Set other) - Găsește unirea a 2 seturi (toate elementele din ambele seturi), setul la care se numește metoda și celălalt set care este trecut ca parametru.
  • bool IsSubsetOf (Set other) - Se întoarce adevărat dacă setul (pe care se numește metoda) este un subset al celuilalt set trecut ca parametru, altfel returnează false
  • bool IsSupersetOf (Set other) - Se întoarce adevărat dacă setul (pe care se numește metoda) este o suprapunere a celuilalt set trecut ca parametru, altfel returnează false
  • int Count - returnează numărul de elemente din set

Următorul este unul dintre exemplele de cod pentru 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+" ");
)
)
)

ieşire:

Tabelul de comparație între List și Set

Următorul tabel ilustrează diferența dintre listă și set:

ListăA stabilit
1. Poate conține elemente duplicate1. Elementele trebuie să fie unice
2. Ordinea elementelor este importantă2. Ordinea elementelor nu este importantă, dar depinde de implementare
3. Elementele sunt accesate folosind index3. Elementele în sine sunt indici
4. Interfața utilizată pentru implementarea listei este System.Collections.IList4. Interfața folosită pentru implementarea setului este System.Collections.ISet
5. Lista este implementată ca listă statică (folosind tablou) și listă dinamică (listă legată)5. Seturile sunt implementate ca hashset (hashtable) și set sortate (roșu-negru pe bază de copac)

Articole recomandate

Acesta este un ghid pentru Listă vs Setare. Aici am discutat despre diferențele cheie Listă și Set cu infografie și tabel de comparație. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. C # List vs Array
  2. C # Array vs List
  3. C # Funcții
  4. C # Comenzi