C# List

Списъци със C#

Какво представляват списъците

C# List

Списъците са специфична структура от данни, която позволява да се създават множество елементи от един тип. Например множество числа. Списъците като идея с много подобни на масивите, но имат редица предимства като. За тези от Вас, които до сега са работили с масиви проблемите изброени по-долу ще са познати:

  • Максималният брой елементи не е фиксиран.
  • Лесно може да се вобавят, или вмъкват елементи с извикването на функции. Не е нужно да се отваря място, за да се вмъкне елемент.
  • Лесно се премахват елементи. Не е нужно да се търси тяхното място и да се сгъстяват елементите след изтриване.
  • Лесно се търсят елементи в тях.
  • Може да се използва LINQ
  • Имат динамична дължина. 
  • Множество помощни функции.

Деклариране на C# List

Списъците съдържат множество елементи от един и същ тип. За да декларираме един списък трябва да определим от какъв тип ще са те. Ето структурата на декларирането. 

				
					List<тип> име = new List<тип>();
				
			

На мястото на “тип” трябва да се определи от какъв тип да са елементите му. Примерни типове са:

  • int
  • float
  • double
  • string
  • bool
  • обекти

За именуването на списъка се спазват всички правила за задаване на име на променливи и обекти. Ето примерни декларации на списъци:

				
					List<int> years = new List<int>();
List<string> names = new List<stirng>();
List<double> temperatures = new List<double>();
				
			

Всяка от горните команди ще създаде празен списък от съответния тип. 

Добавяне на елементи към края на C# List

За да се добави нов елемент в списък се използва функцията Add(Елемент), която се съдържа в самия списък. Ето пример:

				
					List<int> years = new List<int>();
years.Add(2018);
				
			

Така списъка years съдържа един елемент от тип int със сотйнсот 2018. Функцията Add добавя елемента в края на списъка след всички останали елементи. Тя поема един параметър, който е стойността на елемента, който ще се добави.

Вмъкване на елемент в C# List

За да се вмъкват елементи в началото или по средата на списъка се използва Insert функцията. Тя поема два параметъра:

  • Номер на индекса, на който ще се добави елемента.
  • Стойността на елемента, който ще се добави.

Ето примерно вмъкване на елемент в списък:

				
					List<int> years = new List<int>();
years.Add(2011);
years.Add(1993);
years.Add(2015);
years.Add(2019);
years.Insert(2, 1996);
				
			

Така елементът ще се добави на мястото на втори елемент. Много важно е да се отбележи, че номерацията на елементите не започва от 1ви, а от нулев. Така новият елемент ще се вмъкне точно след елемента с индекс едно – 1993 и елемента с индекс 2 – 2015. След вмъкването елементите на списъка ще са { 2011, 1993, 1996, 2015, 2019 }.

За да се изпълни успешно функцията Insert e нужно номера на индекса да е цяло положително число, което е по-малко или равно на броя на елементие в списъка.

Добавяне на няколко елемента наведнъж

Има възможност да се добавят множество елементи наведнъж. Те могат да са в масив, или друг списък. Това се постига чрез функцията AddRange().

				
					int[] array = new int[]{ 3, 6, 12, 32, 8 };
List<int> list = new List<int>();
list.AddRange(array);
				
			

Изтриване на елемент по стойност от C# List

За изтриване на елемент се използвафункцията Remove(елемент). Tя изтрива елемент, като го търси по стойност. 

				
					List<double> list = new List<double>(new double[]{ 3.2, 52.6, 12.4, 6.0 });
list.Remove(12.4);
list.Remove(3.2);
				
			

Командата на втори ред ще премахне елемента със стойност “12.4”. Тази на трети ред ще изтрие първият елемент със стойност “3.2”.

Изтриване на елемент по индекс

С помощта на функцията RemoveAt(Индекс) може да се премахват елементи по индекс. Индексът е число, което показва поредният номер на елемента, като започва от нула.

				
					List<double> list = new List<double>(new double[]{ 3.2, 52.6, 12.4, 6.0 });
list.RemoveAt(1);
				
			

Това ще премахне числото 52.6, което е второ подред в списъка, но е с индекс 1. Задължително условие, за да се изпълни функцията RemoveAt(), е индексът да е в рамките на списъка. Това означава да е число по-голямо или равно на нула и по-малко от броя елементи в списъка.

Достъване на елементи

Достъпването на елементи става по индекс с операцията “индексиране”. Ако в един списък има 10 елемента техните индекси са от нулев, до девети. Чрез индексирането се достъпва един конкретен елемент на списъка, което дава възможност неговата сойност да се промени, или прочете.

				
					List<double> list = new List<double>(new double[]{ 3.2, 52.6, 12.4, 6.0 });
list[1] = 5;
Console.WriteLine(list[2]);
				
			

Намиране на елементи в C# List

За намирането на елементи има много начини, но тук ние ще разгледаме работата с функцията IndexOf(Елемент). Тя поема стойността на елемента, който се търси и връща индекса на първия елемент с тази стойност в дадения C# List. В случай, че елемента не съществува, функцията връща -1.

				
					List<int> list = new List<int>();
list.AddRange(new int[]{4, 7, 43, 21, 3, 2});

int index = list.IndexOf(7);
/* index = 1 */
int index2 = list.IndexOf(30);
/* index2 = -1, защото няма стойност 30 */
				
			

На този линк можете да намерите документация с всички пропъртита и методи на списъците в C#.

Искате ли да ви обучи,
професионален програмист?

Индивидуални частни уроци, водени от професионален програмист!
Най-добрият начин да се научиш да програмирашI