Introduktion till lista vs uppsättning i C #

Lista och uppsättning är två av de många datastrukturer som stöds av C #. Lista är en abstrakt datastruktur som är linjär. Den består av element anordnade på ett linjärt sätt. Det är möjligt att lägga till element i listan på olika positioner. Listan har en egenskap som kallas längd (antal element i listan). I det här ämnet kommer vi att lära oss om List vs Set.

Obs : Var försiktig eftersom listor skiljer sig från matriser. Listorna har variabel storlek, dvs element kan läggas till i listan medan matriser har fast storlek.

Uppsättning är en abstrakt datastruktur. Set har unika element och ordning på element är inte viktigt. Element i uppsättningen kan inte nås via index. Elementen själva är index i uppsättningen och ett visst element kan nås med en förhandslinga.

Head to head jämförelse mellan lista vs set (Infographics)

Nedan visas de 5 bästa skillnaderna mellan Lista och uppsättning

Viktiga skillnader

Följande är de viktigaste takeaways:

  1. Listan kan innehålla duplicerade element medan den inte kan, eftersom en uppsättning endast kan ha unika element. Så använd set om du vill ha unika element.
  2. Element i listan beställs medan beställningen inte är viktig i en uppsättning men det beror på implementeringen av uppsättningen.
  3. Element öppnas med hjälp av index i listan medan elementen själva är index i uppsättningen. Därför används förhandslingan för att komma åt elementen i uppsättningen. Men det kan också användas för att få åtkomst till element i listan som visas i koden för listan ovan.

Låt oss titta på några av metoderna för gränssnitten i listan och uppsättningen.

Lista

Följande är några av de metoder som implementeras av IList-gränssnittet:

  • int Lägg till (element) - för att lägga till elementet i listan (i slutet) och för att returnera ett värde som indikerar framgångsrik infogning.
  • void Insert (int, element) - för att infoga elementet på den angivna positionen i listan
  • void Rensa () - för att ta bort alla element från listan
  • bool Innehåller (element) - för att kontrollera om elementet finns i listan
  • void Ta bort (element) - för att ta bort det givna elementet från listan
  • void RemoveAt (int) - för att ta bort elementet i den angivna positionen
  • int IndexOf (element) - för att returnera elementets position
  • detta (int) - det är en indexerare som tillåter åtkomst till elementet på den givna positionen

Följande är ett exempelkod för listan:

// 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:

Uppsättning

Följande är några av de metoder som implementeras av ISet-gränssnittet:

  • bool Lägg till (element) - Returnerar sant om elementet läggs till i uppsättningen förutsatt att det inte finns i uppsättningen annars returnerar falskt
  • bool Innehåller (element) - Returnerar sant om elementet redan finns i uppsättningen, annars returnerar det falskt
  • bool Ta bort (element) - Returnerar sant om elementet finns i uppsättningen och kan tas bort annars returnerar falskt
  • void Clear () - Ta bort alla element från uppsättningen
  • void IntersectWith (Set other) - Den hittar korsningen mellan 2 uppsättningar (de element som förekommer i båda uppsättningarna), den uppsättning som metoden heter och den andra uppsättningen som passeras som en parameter.
  • void UnionWith (Set other) - Den hittar unionen av 2 uppsättningar (alla element i båda uppsättningarna), den uppsättning som metoden heter och den andra uppsättningen som skickas som en parameter.
  • bool IsSubsetOf (Ställ in andra) - Returnerar sant om uppsättningen (på vilken metoden kallas) är en delmängd av den andra uppsättningen som passeras som en parameter, annars returnerar falskt
  • bool IsSupersetOf (Ställ in andra) - Returnerar sant om uppsättningen (som metoden heter) är en superset för den andra uppsättningen som passeras som en parameter, annars returnerar falskt
  • int Count - Returnerar antalet element i uppsättningen

Följande är ett exempelkod för uppsättning:

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:

Jämförelsetabell mellan List vs Set

Följande tabell illustrerar skillnaden mellan lista och uppsättning:

ListaUppsättning
1. Kan innehålla duplicerade element1. Element måste vara unika
2. Ordning av element är viktigt2. Beställning av element är inte viktigt, men det beror på genomförandet
3. Element nås med index3. Element i sig är index
4. Gränssnittet som används för att implementera listan är System.Collections.IList4. Gränssnittet som används för att implementera uppsättningen är System.Collections.ISet
5. Listan implementeras som en statisk lista (med hjälp av matris) och dynamisk lista (länkad lista)5. Uppsättningar implementeras som hashset (hashtable) och sorterade set (röd-svart trädbaserad)

Rekommenderade artiklar

Detta är en guide till List vs Set. Här har vi diskuterat Lista vs Ställ in viktiga skillnader med infografik och jämförelsetabell. Du kan också titta på följande artiklar för att lära dig mer -

  1. C # Lista vs Array
  2. C # Array vs List
  3. C # funktioner
  4. C # Kommandon

Kategori: