Вступ до списку проти набору в C #

Список і Набір - це дві з багатьох структур даних, підтримуваних C #. Список - це абстрактна структура даних, яка є лінійною. Він складається з елементів, розташованих лінійно. Можна додати елементи до списку на різних позиціях. Список має властивість, яку називають довжиною (кількість елементів у списку). У цій темі ми дізнаємось про List vs Set.

Примітка . Будьте уважні, оскільки списки відрізняються від масивів. Список має змінний розмір, тобто елементи можуть бути додані до списку, тоді як масиви мають фіксований розмір.

Набір - це абстрактна структура даних. Набір має унікальні елементи, і порядок елементів не важливий. До елементів у наборі не можна отримати доступ через індекси. Самі елементи є індексами у наборі, і до певного елемента можна отримати доступ, використовуючи цикл foreach.

Порівняння списку між списками та набором (Інфографіка)

Нижче наведено 5 найкращих відмінностей між списком та набором

Ключові відмінності

Нижче наведено основні заходи:

  1. Список може містити повторювані елементи, а встановити не може, оскільки набір може мати лише унікальні елементи. Тому використовуйте набір, якщо хочете унікальних елементів.
  2. Елементи в списку впорядковуються, коли порядок не є важливим для набору, але це залежить від реалізації набору.
  3. Доступ до елементів здійснюється за допомогою індексів у списку, а самі елементи є індексами у наборі. Отже, петля foreach використовується для доступу до елементів набору. Однак він також може бути використаний для доступу до елементів списку, як показано в коді списку вище.

Давайте розглянемо деякі методи інтерфейсів списку та набору.

Список

Нижче наведено деякі методи, реалізовані інтерфейсом IList:

  • int Add (element) - для додавання елемента до списку (в кінці) та повернення значення, що вказує на успішне введення.
  • void Insert (int, element) - для вставки елемента в задану позицію у списку
  • void Clear () - для видалення всіх елементів зі списку
  • bool Містить (елемент) - щоб перевірити, чи елемент присутній у списку
  • void Remove (елемент) - для видалення даного елемента зі списку
  • void RemoveAt (int) - для видалення елемента з заданої позиції
  • int IndexOf (element) - для повернення положення елемента
  • this (int) - це індексатор, що дозволяє отримати доступ до елемента в заданій позиції

Нижче наведено один із прикладних кодів списку:

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

Вихід:

Встановити

Нижче наведено деякі методи, реалізовані інтерфейсом ISet:

  • bool Add (елемент) - повертає true, якщо елемент додається до набору за умови, що його немає в наборі, ще повертає false
  • bool Містить (елемент) - повертає true, якщо елемент вже присутній у наборі, інакше він повертає false
  • bool Remove (елемент) - повертає true, якщо елемент існує в наборі і може бути видалений, інакше повертається false
  • void Clear () - для видалення всіх елементів із набору
  • void IntersectWith (Set other) - Він знаходить перетин двох множин (тих елементів, які зустрічаються в обох множинах), множини, за якою називається метод, та іншої множини, яка передається як параметр.
  • void UnionWith (Set other) - Він знаходить об'єднання двох множин (всіх елементів в обох наборах), набору, за яким викликається метод, та іншого набору, який передається як параметр.
  • bool IsSubsetOf (Set other) - Повертає true, якщо множина (по якій називається метод) є підмножиною іншого набору, переданого як параметр, інакше повертає false
  • bool IsSupersetOf (Set other) - Повертає true, якщо множина (на основі якої називається метод) є набором іншого набору, переданого як параметр, інакше повертає false
  • int Count - Повертає кількість елементів у наборі

Нижче наведено один із прикладних кодів для набору:

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

Вихід:

Таблиця порівняння між списком та набором

Наступна таблиця ілюструє різницю між списком та набором:

СписокВстановити
1. Може містити повторювані елементи1. Елементи повинні бути унікальними
2. Порядок елементів важливий2. Порядок елементів не важливий, але це залежить від реалізації
3. Доступ до елементів здійснюється за допомогою індексу3. Самі елементи - це індекси
4. Інтерфейс, який використовується для реалізації списку, є System.Collections.IList4. Інтерфейс, який використовується для реалізації набору, є System.Collections.ISet
5. Список реалізований у вигляді статичного списку (з використанням масиву) та динамічного списку (зв'язаний список)5. Набори реалізовані як хеш-хет (хеш-табл) та відсортований набір (на основі червоного-чорного дерева)

Рекомендовані статті

Це посібник зі списку проти набору. Тут ми обговорили список проти встановлення ключових відмінностей за допомогою інфографіки та таблиці порівняння. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. C # Список проти масиву
  2. C # масив проти списку
  3. C # Функції
  4. C # Команди