List<T> это класс, который реализовывает массив с динамическм добавлением и удалением элементов, обращение по индексу. Так же есть методы поиска и сортировки элементов.
List<T> относится к
типизированной коллекции... то есть все элементы одного типа.
C#
Создаем новое C# консольное приложение и напишем код:
using System;
using System.Collections.Generic; // подключаем List<T>
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
public class Book
{
public string BookName { set; get; }
public int Price { set; get; }
}
class Program
{
static void Main(string[] args)
{
// создаем List<Book>
List<Book> myList = new List<Book>();
// добавляем элементы
myList.Add(new Book() { BookName = "Властелин Колец", Price = 200 });
myList.Add(new Book() { BookName = "Три мушкетера", Price = 300 });
myList.Add(new Book() { BookName = "Гарри Поттер", Price = 400 });
// в myList элементы: {"Властелин Колец", 200}, {"Три мушкетера", 300}, {"Гарри Поттер", 400}
// вставляем элемент перед индексом 1
Book book = new Book() { BookName = "Волшебник", Price = 800 };
myList.Insert(1, book);
// в myList элементы: {"Властелин Колец", 200}, {"Волшебник", 800}, {"Три мушкетера", 300}, {"Гарри Поттер", 400}
// удаляем элемент по индексу 2 т.е. удалится {"Три мушкетера", 300}
myList.RemoveAt(2);
// в myList элементы: {"Властелин Колец", 200}, {"Волшебник", 800}, {"Гарри Поттер", 400}
// удаляем элемент {"Волшебник", 800}
myList.Remove(book);
// в myList элементы: {"Властелин Колец", 200}, {"Гарри Поттер", 400}
// удаляем элемент {"Гарри Поттер", 400}
book = new Book() { BookName = "Гарри Поттер", Price = 400 };
myList.Remove(book); // НЕ УДАЛИТСЯ
// потому что удаляется по ссылке, а ссылка на которую указывает переменная book нет в myList.
// Вариант 1 (перебираем все элементы с помощью for)
for (int i = 0; i < myList.Count; i++)
{
Book item = myList[i];
Console.WriteLine("Название=" + item.BookName + " ,Цена=" + item.Price);
}
// Вариант 2 (перебираем все элементы с помощью foreach)
foreach (Book item in myList)
Console.WriteLine("Название=" + item.BookName + " ,Цена=" + item.Price);
}
}
}