1. Определение – динамична структура от данни с променлив размер. Можем да добавяме и махаме елементи само в края на списъка, като това заделя или освобождава памет в компютъра.
2. Синтаксис

  List<int> numbersList = new List<int>(); //създаване на списък
  numbersList.Add(num); //добавяне на елемент към списък
  for(int i = 0; i < numbersList.Count; i++)//обхождане на списък

Пример 1: Да се направи списък от войници (картинки). Да може да добавя и убива войник. Да може да се изпраща цялата войска в атака напред.

Linked List-Aom
 List<PictureBox> soldiers = new List<PictureBox>();
 int count = 0;
 private void button2_Click(object sender, EventArgs e)
 {//Attack - войниците тръгват напред чрез таймер1
   timer1.Enabled = true;
 }

 private void timer1_Tick(object sender, EventArgs e)
 {//Attack - Войниците се движат напред
   Random rnd = new Random();
   int num;
   for (int i = 0; i < soldiers.Count; i++)
   {
     num = rnd.Next(3, 10);
     soldiers[i].Left = soldiers[i].Left + num;
   }
 }

 private void button3_Click(object sender, EventArgs e)
 {//Destroy Army - Убиване на всички войници(изчезват) 
   for (int i = 0; i < soldiers.Count; i++)
   {
     soldiers[i].Visible = false;
   }
 }

 private void button4_Click(object sender, EventArgs e)
 {//Move Down - всички войници се придвижват надолу
   for (int i = 0; i < soldiers.Count; i++)
   {
     soldiers[i].Top = soldiers[i].Top + 5;
   }
 }

 private void button5_Click(object sender, EventArgs e)
 {//Remove - изключваме войник от списъка и той остава да пази бараката
   int ind = soldiers.Count - 1;
   soldiers[ind].Left -= 50;
   soldiers[ind].BorderStyle = BorderStyle.Fixed3D;
   soldiers.RemoveAt(ind);
 }

 private void button6_Click(object sender, EventArgs e)
 {//Kill - убиване на войник (изчезва)
   int ind = soldiers.Count - 1;
   soldiers[ind].Visible = false;
   soldiers.RemoveAt(ind);
 }

 private void pictureBox1_Click(object sender, EventArgs e)
 {//Add - Създаване на нов войник от бараката
   PictureBox soldier = new PictureBox();
   soldier.Image = Properties.Resources.Egyptian_Spearman;
   soldier.Top = 10 + 100 * count;
   soldier.Left = 200 - Convert.ToInt16(Math.Pow(-1, count)) * 5 * count;
   soldier.SizeMode = PictureBoxSizeMode.AutoSize;
   count++;
   this.Controls.Add(soldier);
   soldiers.Add(soldier);
 }

Задачи за самостоятелнa работа:
1. Да се направи списък от етикети (List <label> labList = new List<label>();).
2. При натискане на Бутон1 да се добавя нов етикет (Label lab = new label();). Като всеки етикет се добавя вдясно от предходния и се номерира с пореден номер.
this.Controls.Add(lab);
labList.Add(lab);
3. При натискане на Бутон 2 – всички етикети да се преместват 10 пиксела надолу.
4. При натискане на Бутон 3 – всички етикети да се оцветяват в червен цвят.
5. При натискане на Бутон 4 – всички етикети да се оцветяват в зелен цвят.