Uvod v seznam proti nizu v C #

Seznam in niz sta dve od številnih podatkovnih struktur, ki jih podpira C #. Seznam je abstraktna podatkovna struktura. Sestavljen je iz linearnih elementov. Na seznam je mogoče dodati elemente na različnih položajih. Seznam ima lastnost, imenovano dolžina (število elementov na seznamu). V tej temi bomo spoznali Seznam vs Set.

Opomba : Bodite previdni, saj se seznami razlikujejo od nizov. Seznami imajo spremenljivo velikost, tj. Elemente lahko dodate na seznam, medtem ko imajo matrike fiksno velikost.

Set je abstraktna podatkovna struktura. Set ima edinstvene elemente in vrstni red elementov ni pomemben. Do elementov v naboru ni mogoče dostopati z indeksi. Sami elementi so indeksi v množici in do določenega elementa je mogoče dostopati s pomočjo foreach zanke.

Primerjava med seznamom in nizom (Infographics)

Spodaj je zgornjih 5 razlik med seznamom in nizom

Ključne razlike

Sledijo ključni ukrepi:

  1. Seznam lahko vsebuje podvojene elemente, medtem ko nastavitev ne more, saj lahko niz vsebuje samo edinstvene elemente. Zato uporabite set, če želite edinstvene elemente.
  2. Elementi na seznamu so razvrščeni, medtem ko vrstni red ni pomemben, vendar je odvisen od izvedbe niza.
  3. Dostop do elementov je mogoč s pomočjo indeksov na seznamu, medtem ko so sami elementi v indeksu. Zato se zanka foreach uporablja za dostop do elementov niza. Vendar pa se lahko uporablja tudi za dostop do elementov seznama, kot je prikazano v kodi zgornjega seznama.

Poglejmo nekaj metod vmesnikov seznama in nastavimo.

Seznam

Sledi nekaj metod, ki jih izvaja vmesnik IList:

  • int Add (element) - če želite element dodati na seznam (na koncu) in vrniti vrednost, ki kaže na uspešno vstavitev.
  • void Insert (int, element) - če želite element vstaviti na dani položaj na seznamu
  • void Clear () - če želite odstraniti vse elemente s seznama
  • bool Vsebuje (element) - če želite preveriti, ali je element na seznamu
  • void Remove (element) - za odstranitev danega elementa s seznama
  • void RemoveAt (int) - za odstranitev elementa na danem položaju
  • int IndexOf (element) - za vrnitev položaja elementa
  • this (int) - to je kazalo, ki omogoča dostop do elementa na dani poziciji

Sledi ena od primernih kod za seznam:

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

Izhod:

Set

Sledi nekaj načinov, ki jih izvaja vmesnik ISet:

  • bool Add (element) - Vrne true, če je element dodan v niz, pod pogojem, da ga ni v naboru, se vrne false
  • bool Vsebuje (element) - Vrne true, če je element že prisoten v naboru, sicer vrne false
  • bool Odstranite (element) - Vrne true, če element obstaja v nizu in se lahko odstrani drug vrne FALSE
  • void Clear () - Če želite odstraniti vse elemente iz nabora
  • void IntersectWith (Set other) - Poišče presečišče dveh nizov (tistih elementov, ki se pojavita v obeh nizih), množice, po kateri se imenuje metoda, in drugega niza, ki se posreduje kot parameter.
  • void UnionWith (Set set) - Poišče združitev dveh nizov (vsi elementi v obeh nizih), množice, po kateri se imenuje metoda, in drugega niza, ki je poslan kot parameter.
  • bool IsSubsetOf (Set other) - Vrne true, če je niz (po katerem se imenuje metoda) podmnožica drugega niza, ki je bil poslan kot parameter, sicer vrne false
  • bool IsSupersetOf (Set other) - Vrne true, če je niz (po katerem se imenuje metoda) nadnabor drugega niza, ki je bil poslan kot parameter, sicer vrne false
  • int Count - Vrne število elementov v naboru

Sledi ena od vzorčnih kod za niz:

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

Izhod:

Primerjalna tabela med seznamom in nizom

Naslednja tabela prikazuje razliko med seznamom in nizom:

SeznamSet
1. Lahko vsebuje podvojene elemente1. Elementi morajo biti edinstveni
2. Pomemben je vrstni red elementov2. Vrstni red elementov ni pomemben, je pa odvisen od izvedbe
3. Do elementov se dostopa s pomočjo indeksa3. Sami elementi so indeksi
4. Vmesnik, ki se uporablja za izvajanje seznama, je System.Collections.IList4. Vmesnik, ki se uporablja za izvedbo niza, je System.Collections.ISet
5. Seznam se izvaja kot statični seznam (z uporabo matrike) in dinamični seznam (povezan seznam)5. Kompleti se izvajajo v obliki hashset (hashtable) in razvrščenih (na osnovi rdeče-črne drevesa)

Priporočeni članki

To je vodnik za List proti Setu. Tu smo razpravljali o seznamu proti nastavitvi ključnih razlik z infografiko in primerjalno tabelo. Za več informacij si lahko ogledate tudi naslednje članke -

  1. Seznam C # proti matriki
  2. C # Array proti seznamu
  3. C # funkcije
  4. C # ukazi