Einführung in List vs Set in C #

List und Set sind zwei der vielen von C # unterstützten Datenstrukturen. Liste ist eine abstrakte Datenstruktur, die linear ist. Es besteht aus linear angeordneten Elementen. Es ist möglich, der Liste Elemente an verschiedenen Positionen hinzuzufügen. List hat eine Eigenschaft namens length (Anzahl der Elemente in der Liste). In diesem Thema lernen wir List vs Set kennen.

Hinweis : Seien Sie vorsichtig, da sich Listen von Arrays unterscheiden. Die Listen haben eine variable Größe, dh Elemente können an die Liste angehängt werden, während Arrays eine feste Größe haben.

Set ist eine abstrakte Datenstruktur. Set hat eindeutige Elemente und die Reihenfolge der Elemente ist nicht wichtig. Auf Elemente in der Menge kann nicht über Indizes zugegriffen werden. Die Elemente selbst sind Indizes in der Menge, und auf ein bestimmtes Element kann mit einer foreach-Schleife zugegriffen werden.

Head to Head Vergleich zwischen List und Set (Infografik)

Nachfolgend sind die fünf wichtigsten Unterschiede zwischen List und Set aufgeführt

Hauptunterschiede

Im Folgenden sind die wichtigsten Imbissbuden aufgeführt:

  1. Die Liste kann doppelte Elemente enthalten, während das Festlegen nicht möglich ist. Da ein Satz nur eindeutige Elemente enthalten kann. Verwenden Sie set, wenn Sie eindeutige Elemente wünschen.
  2. Elemente in der Liste werden sortiert, während die Reihenfolge in einer Menge nicht wichtig ist, aber von der Implementierung der Menge abhängt.
  3. Auf Elemente wird mithilfe von Indizes in der Liste zugegriffen, während Elemente selbst Indizes in der Menge sind. Daher wird jede Schleife verwendet, um auf Elemente der Menge zuzugreifen. Es kann jedoch auch verwendet werden, um auf Elemente der Liste zuzugreifen, wie im Code der obigen Liste gezeigt.

Sehen wir uns einige Methoden der Schnittstellen der Liste und der Menge an.

Aufführen

Im Folgenden sind einige der von der IList-Schnittstelle implementierten Methoden aufgeführt:

  • int Add (Element) - um das Element (am Ende) an die Liste anzuhängen und einen Wert zurückzugeben, der das erfolgreiche Einfügen anzeigt.
  • void Insert (int, element) - um das Element an der angegebenen Position in der Liste einzufügen
  • void Clear () - um alle Elemente aus der Liste zu entfernen
  • bool Contains (Element) - um zu überprüfen, ob das Element in der Liste vorhanden ist
  • void Remove (Element) - um das angegebene Element aus der Liste zu entfernen
  • void RemoveAt (int) - um das Element an der angegebenen Position zu entfernen
  • int IndexOf (Element) - Gibt die Position des Elements zurück
  • this (int) - Dies ist ein Indexer, der den Zugriff auf das Element an der angegebenen Position ermöglicht

Das Folgende ist einer der Beispielcodes für die Liste:

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

Ausgabe:

einstellen

Im Folgenden sind einige der von der ISet-Schnittstelle implementierten Methoden aufgeführt:

  • bool Add (Element) - Gibt true zurück, wenn das Element zur Menge hinzugefügt wird, sofern es nicht in der Menge vorhanden ist. Andernfalls wird false zurückgegeben
  • bool Contains (Element) - Gibt true zurück, wenn das Element bereits in der Menge vorhanden ist, andernfalls wird false zurückgegeben
  • bool Remove (Element) - Gibt true zurück, wenn das Element in der Menge vorhanden ist und entfernt werden kann, andernfalls wird false zurückgegeben
  • void Clear () - Zum Entfernen aller Elemente aus der Gruppe
  • void IntersectWith (Set other) - Ermittelt den Schnittpunkt von 2 Mengen (die Elemente, die in beiden Mengen vorkommen), der Menge, für die die Methode aufgerufen wird, und der anderen Menge, die als Parameter übergeben wird.
  • void UnionWith (Set other) - Ermittelt die Vereinigung von 2 Mengen (alle Elemente in beiden Mengen), der Menge, für die die Methode aufgerufen wird, und der anderen Menge, die als Parameter übergeben wird.
  • bool IsSubsetOf (Set other) - Gibt true zurück, wenn die Menge (für die die Methode aufgerufen wird) eine Teilmenge der anderen als Parameter übergebenen Menge ist, andernfalls false
  • bool IsSupersetOf (Set other) - Gibt true zurück, wenn die Menge (für die die Methode aufgerufen wird) eine Obermenge der anderen als Parameter übergebenen Menge ist, andernfalls false
  • int Count - Gibt die Anzahl der Elemente in der Menge zurück

Das Folgende ist einer der Beispielcodes für 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+" ");
)
)
)

Ausgabe:

Vergleichstabelle zwischen List vs Set

Die folgende Tabelle zeigt den Unterschied zwischen Liste und Menge:

Aufführeneinstellen
1. Kann doppelte Elemente enthalten1. Elemente müssen eindeutig sein
2. Die Reihenfolge der Elemente ist wichtig2. Die Reihenfolge der Elemente ist nicht wichtig, hängt jedoch von der Implementierung ab
3. Auf Elemente wird über den Index zugegriffen3. Elemente selbst sind Indizes
4. Die zur Implementierung der Liste verwendete Schnittstelle ist System.Collections.IList4. Die zur Implementierung von set verwendete Schnittstelle ist System.Collections.ISet
5. Die Liste ist als statische Liste (mit Array) und dynamische Liste (verknüpfte Liste) implementiert.5. Mengen werden als Hashset (Hashtable) und sortierte Menge (rot-schwarz baumbasiert) implementiert

Empfohlene Artikel

Dies ist eine Anleitung zu List vs Set. Hier haben wir die Hauptunterschiede zwischen Liste und Set mit Infografiken und Vergleichstabelle besprochen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. C # Liste vs Array
  2. C # Array vs Liste
  3. C # -Funktionen
  4. C # -Befehle