Обзор коллекций в C #

В этой статье мы собираемся узнать о коллекциях в C #. Коллекционные классы - это специализированные классы для поиска и хранения данных. Он динамически распределяет память по элементам. С его помощью мы можем выполнять различные операции, такие как обновление, извлечение, сохранение и т. Д. Коллекции похожи на массив. Здесь нам не нужно заранее определять размер в отличие от массива.

Есть 3 способа работы с коллекциями, которые следуют

  • System.Collections.Generic классы
  • System.Collections.Concurrent классы
  • Классы System.Collections

Примеры коллекций в C #

Ниже приведены примеры различных типов коллекций в C #:

Пример № 1 - ArrayList

Это коллекция System.Collections. Это позволяет хранить данные нескольких типов данных и по мере добавления данных автоматически расширяется.

Код:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArrayListExample
(
class Program
(
static void Main(string() args)
(
var data = new ArrayList(); //arraylist collection
data.Add("Demo"); // add element
data.Add(1);
data.Add(5);
data.Add(26);
data.Add(56.4);
data.Add(32);
data.Remove(5); // remove element
foreach (object obj in data) // iteration
(
Console.WriteLine(obj);
Console.ReadLine();
)
)
)
)

В приведенном выше примере есть коллекция типа ArrayList. В ArrayList есть несколько элементов. Add () и Remove () - это методы, которые используются для добавления и удаления элементов из коллекции соответственно. foreach используется для итерации и отображает значения.

Выход:

Пример №2 - здесь мы будем использовать операцию со списком

Это коллекция пространства имен System.Collections.Generic.

Код:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var value = new List(); // list collection
value.Add("Cricket"); // add element
value.Add("Football");
value.Add("Volleyball");
value.Add("Hockey");
value.Add("Basketball");
value.Add("Tennis");
value.Remove("Football"); // remove element
value.Remove("Tennis");
value.Insert(3, "Badminton"); // insert element
foreach (string st in value)
(
Console.WriteLine(st);
Console.ReadLine();
)
)
)
)

В приведенном выше примере коллекция имеет тип списка. Методы Add () и Remove () используются для добавления или удаления элементов из списка соответственно. Insert () также используется для вставки элемента в список по определенному индексу. Foreach используется для итерации и отображения значений.

Выход:

Пример № 3: отсортированный список

Он состоит из ключа и значений в коллекции.

Код:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var value = new SortedList(); // sortedlist collection
value.Add("java", 3); // add element
value.Add("javascript", 4);
value.Add("c-sharp", 5);
value.Add("dotnet", 25);
value.Add("python", 27);
value.Add("typescript", 57);
foreach (var pair in value)
(
Console.WriteLine(pair);
Console.ReadLine();
)
)
)
)

В приведенном выше примере коллекция имеет тип sortedlist. В списке несколько пар ключей и значений. Это в основном представляет отсортированную пару ключей и значений.

Выход:

Пример № 4: Связанный список

Это в основном позволяет последовательный доступ к элементам.

Код:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var value = new LinkedList(); // linkedlist collection
value.AddLast(13); // add element
value.AddLast(33);
value.AddLast(23);
value.AddLast(51);
value.AddLast(60);
value.AddFirst(4);
value.AddFirst(6);
LinkedListNode node = value.Find(51); // find the node
value.AddBefore(node, 40);
foreach (int num in value)
(
Console.WriteLine(num);
Console.ReadLine();
)
)
)
)

В приведенном выше примере коллекция имеет тип Linkedlist. AddLast () используется для размещения элемента в последнем положении, тогда как AddFirst () используется для размещения элемента в первой позиции списка. Linkedlist состоит из узла. Find () используется, чтобы найти значение и место до него.

Выход :

Пример № 5 - Словарь

Он состоит из уникальной пары ключей и значений.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var pair = new Dictionary(); // dictionary collection
pair.Add("in", "India"); // add keys and values
pair.Add("af", "Africa");
pair.Add("us", "United States");
pair.Add("ja", "Japan");
pair.Add("ch", "China");
pair.Add("ca", "Canada");
Console.WriteLine("Keys present in the dictionary:");
var key = new List(pair.Keys);
foreach (string k in key)
(
Console.WriteLine("(0)", k);
)
Console.WriteLine("Values present in the dictionary:");
var value = new List(pair.Values);
foreach (string val in value)
(
Console.WriteLine("(0)", val);
)
Console.ReadLine();
)
)
)

В приведенном выше примере коллекция имеет тип словаря, который содержит ключ и их значения. Foreach используется для итерации ключей и значений.

Выход

Пример №6 - стек

Он основан на структуре «первым пришел - первым вышел». Последний элемент очереди является первым, который будет удален.

Код:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var value = new Stack(); // stack collection
value.Push(10); // adding the element
value.Push(40);
value.Push(33);
value.Push(62);
value.Push(48);
value.Push(21);
value.Push(31);
Console.WriteLine(value.Pop());
Console.WriteLine(value.Peek());
Console.WriteLine();
foreach (int item in value)
(
Console.WriteLine(item);
Console.ReadLine();
)
)
)
)

В приведенном выше примере коллекция имеет тип стека. Push () используется для вставки элемента сверху. Pop () - для удаления и возврата элемента, а Peek () - для возврата верхнего элемента стека.

Выход:

Пример № 7 - Очередь

Он основан на структуре «первым пришел - первым вышел». Первый элемент очереди является первым, который будет удален.

Код:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(static void Main(string() args)
(
var value = new Queue(); // queue collection
value.Enqueue("Item 1"); // add element
value.Enqueue("Item 2");
value.Enqueue("Item 3");
value.Enqueue("Item 4");
value.Enqueue("Item 5");
value.Enqueue("Item 6");
value.Enqueue("Item 7");
Console.WriteLine(value.Dequeue());
Console.WriteLine(value.Peek());
Console.WriteLine();
foreach (string num in value)
(
Console.WriteLine(num);
Console.ReadLine();
)
)
)
)

В приведенном выше примере; коллекция имеет тип очереди. Enqueue () для вставки элемента в конец очереди. Dequeue () предназначен для удаления элемента из начала очереди . Peek () используется для возврата элемента.

Выход:

Таким образом, существует множество способов использования коллекций. Коллекции похожи на массив. Здесь нам не нужно заранее определять размер в отличие от массива.

Рекомендуемые статьи

Это было руководство по коллекциям в C #. Здесь мы обсудим обзор и различные примеры коллекций в C # с реализацией кода и выводом. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Полное руководство по сортировке в C #
  2. Методы итераторов в C #
  3. Типы шаблонов в C #
  4. Как работают указатели в C #?