C# Списки

2075 / C# / Списки

 

Queue Stack Tree
LINQ Dictionary ArrayList
Enumerable.Range 2D список

 

Об'являємо

List<int> numbers = new List<int>();

або

List<int> numbers = new List<int>() { 1, 2, 3, 45 };


Функції

numbers.Add(6); 

numbers.AddRange(new int[] { 7, 8, 9 }); // масив або список

numbers.Insert(0, 66); // вставити на початку число 66

numbers.RemoveAt(1); // видалити другий елемент

numbers.Remove(6); // видалити елемент 6 (один)

numbers.Clear(); // видалити всі елементи

numbers.Count; // розмір

foreach (int n in list)
{
  Console.WriteLine(n);
}

Безпечне видалення

for (int i = numbers.Count - 1; i >= 0; i--) {
  list.RemoveAt(i); // якщо 2 Remove - то вилетить
}

Список об'єктів

List<Person> people = new List<Person>();
people.Add(new Person() { Name = "Козак" });
people.Add(new Person() { Name = "Дім" });

class Person
{
  public string Name { get; set; }
}  

Перетворити масив у список

string[] w = { "First", "Second", "Third", "Fourth", "Fifth" };
List<string> list1 = w.ToList();

Записати список в рядок

string str = string.Join(", ", list1); // Environment.NewLine

Об'єднати 2 списки

var list = list1.Concat(list2);

// var працює через foreach!

Об'єднати 2 списки і видаляє дублікати

var list = list1.Union(list2);

Відкинути перший елемент і видалити дублікати

var list = list1.Skip(1).Distinct();

Пропустити перших 2 елементи і взяти 2 наступних

var list = list1.Skip(2).Take(2);

Відсортувати

list.Sort(); // якщо список створено через var - не працює

Відсортувати за полем класу

list.Sort((item1, item2) => item1.price.CompareTo(item2.price));

Рядки, що починаються з 'а' чи 'А'

foreach(string elem in array)
{
  if (elem.ToUpper().StartsWith("А"))
    list.Add(elem);
}

Конвертувати в масив

string[] array = list.ToArray();