ArrayList

Коллекция, представляющая динамический массив, который может хранить значения и объекты.
наиболее часто используемые члены класса
Add() добавляет элемент в конец коллекции
вывод вручную вывод элементов по индексу
Capacity получает или задает количество элементов коллекции
Count фактическое количество элементов коллекции
Insert() добавляет элемент в коллекцию по индексу
Clear() удаляет все элементы коллекции
RemoveAt() удаляет указанный по индексу элемент коллекции
RemoveRange() удаляет от указанного индекса количество элементов
Reverse() изменяет порядок элементов коллекции на обратный
Remove() только для значений; удаляет указанное значение
CopyTo() только для значений; копирование одного массива в другой
создание обычного массива из динамического только для значений, а не для объектов
Sort() только для значений; сортирует значения коллекции
IComparable для сортировки объектов требуется реализация интерфейса
BinarySearch() только для значений; поиск индекса элемента по значению
 
 

Add()

Метод добавляет элемент в конец коллекции.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15
 
 

вывод вручную

Вывод элементов по индексу.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   //вывод вручную по индексу
  •   Console.WriteLine("название : {0} количество : {1} цена : {2}", ((One)Books[0]).Name, ((One)Books[0]).Amount, ((One)Books[0]).Price);
  •   Console.WriteLine("название : {0} количество : {1} цена : {2}", ((One)Books[1]).Name, ((One)Books[1]).Amount, ((One)Books[1]).Price);
  •   Console.WriteLine("название : {0} количество : {1} цена : {2}", ((One)Books[2]).Name, ((One)Books[2]).Amount, ((One)Books[2]).Price);
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15
 
 

Capacity

Свойство получает или задает количество элементов коллекции. Значение свойства Capacity всегда больше на 1 количества элементов коллекции.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   //значение свойства Capacity всегда больше на 1 количества элементов коллекции
  •   Console.WriteLine("значение свойства Capacity {0}", Books.Capacity);
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15
значение свойства Capacity 4
 
 

Count

Свойство показывает фактическое количество элементов коллекции.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   //значение свойства Capacity всегда больше на 1 количества элементов коллекции
  •   Console.WriteLine("фактическое количество элементов {0}", Books.Count);
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15
фактическое количество элементов 3
 
 

Insert()

Метод добавляет элемент в коллекцию по указанному индексу.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Insert(0, new One("Азбука", 10, 15.55m));
  •   Books.Insert(1, new One("Букварь", 20, 24.35m));
  •   Books.Insert(2, new One("Математика", 30, 28.15m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15
 
 

Clear()

Метод удаляет все элементы коллекции.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.WriteLine();
  •   Books.Clear();
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15
 
 
 

RemoveAt()

Метод удаляет указанный элемент коллекции по индексу.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.WriteLine();
  •   Books.RemoveAt(2);
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15

название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
 
 

RemoveRange()

Метод удаляет от указанного индекса количество элементов.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   Books.Add(new One("География", 40, 23.90m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.WriteLine();
  •   /*индекс, с которого будет начинаться удаление
  •    количество элементов*/
  •   Books.RemoveRange(0, 3);
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15
название : География количество : 40 цена : 23,90

название : География количество : 40 цена : 23,90
 
 

Reverse()

Метод изменяет порядок элементов коллекции на обратный.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class One {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   Books.Add(new One("География", 40, 23.90m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.WriteLine();
  •   Books.Reverse();
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : Математика количество : 30 цена : 28,15
название : География количество : 40 цена : 23,90

название : География количество : 40 цена : 23,90
название : Математика количество : 30 цена : 28,15
название : Букварь количество : 20 цена : 24,35
название : Азбука количество : 10 цена : 15,55
 
 

Remove()

Метод предназначен только для значений; удаляет указанное значение.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Arra = new ArrayList();
  •   Arra.Add(10);
  •   Arra.Add(20);
  •   Arra.Add(30);
  •   Arra.Add(40);
  •   Arra.Add(50);
  •   foreach(var i in Arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   //указываем значение, если такого нет, ничего не удаляется
  •   Arra.Remove(50);
  •   foreach(var i in Arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
10 20 30 40 50
10 20 30 40
 
 

CopyTo()

Метод только для значений; копирование одного массива в другой.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Arra = new ArrayList();
  •   Arra.Add(10);
  •   Arra.Add(20);
  •   Arra.Add(30);
  •   Arra.Add(40);
  •   Arra.Add(50);
  •   foreach(var i in Arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   int[] arra = new int[5];
  •   Arra.CopyTo(arra);
  •   foreach(var i in arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
10 20 30 40 50
10 20 30 40 50
 
 

создание обычного массива из динамического

Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Arra = new ArrayList();
  •   Arra.Add(10);
  •   Arra.Add(20);
  •   Arra.Add(30);
  •   Arra.Add(40);
  •   Arra.Add(50);
  •   foreach(var i in Arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   //создание обычного массива из динамического
  •   int[] arra = (int[])Arra.ToArray(typeof(int));
  •   foreach(var i in arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
10 20 30 40 50
10 20 30 40 50
 
 

Sort()

Метод предназначен только для значений; сортирует значения коллекции.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Arra = new ArrayList();
  •   Arra.Add(10);
  •   Arra.Add(50);
  •   Arra.Add(40);
  •   Arra.Add(30);
  •   Arra.Add(20);
  •   foreach(var i in Arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   Arra.Sort();
  •   foreach(var i in Arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
10 50 40 30 20
10 20 30 40 50
 
 

IComparable

Этот интерфейс для сортировки объектов.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • //для сортировки объектов необходимо реализовать интерфейс
  • class One : IComparable {
  •  string name;
  •  uint amount;
  •  decimal price;
  •  public string Name {
  •   get {
  •    return name;
  •   }
  •  }
  •  public uint Amount {
  •   get {
  •    return amount;
  •   }
  •  }
  •  public decimal Price {
  •   get {
  •    return price;
  •   }
  •  }
  •  public One(string arg0, uint arg1, decimal arg2) {
  •   name = arg0;
  •   amount = arg1;
  •   price = arg2;
  •  }
  •  //реализуем метод, объявленный в интерфейсе IComparable
  •  public int CompareTo(object obj) {
  •   One o = (One) obj;
  •   //параметр сортировки свойство Name
  •   return Name.CompareTo(o.Name);
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Books = new ArrayList();
  •   Books.Add(new One("Азбука", 10, 15.55m));
  •   Books.Add(new One("Математика", 30, 28.15m));
  •   Books.Add(new One("Букварь", 20, 24.35m));
  •   Books.Add(new One("География", 40, 23.90m));
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.WriteLine();
  •   Books.Sort();
  •   foreach(One i in Books) {
  •    Console.WriteLine("название : {0} количество : {1} цена : {2}", i.Name, i.Amount, i.Price);
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
название : Азбука количество : 10 цена : 15,55
название : Математика количество : 30 цена : 28,15
название : Букварь количество : 20 цена : 24,35
название : География количество : 40 цена : 23,90

название : Азбука количество : 10 цена : 15,55
название : Букварь количество : 20 цена : 24,35
название : География количество : 40 цена : 23,90
название : Математика количество : 30 цена : 28,15
 
 

BinarySearch()

Метод предназначен только для значений; поиск индекса элемента по значению.
Поиск индекса элемента по значению желательно делать в отсортированной коллекции.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.Collections;
  •  
  • class Program {
  •  public static int Main() {
  •   ArrayList Arra = new ArrayList();
  •   Arra.Add(10);
  •   Arra.Add(50);
  •   Arra.Add(40);
  •   Arra.Add(30);
  •   Arra.Add(20);
  •   //поиск индекса элемента по значению желательно делать в отсортированной коллекции
  •   Arra.Sort();
  •   foreach(var i in Arra) {
  •    Console.Write("{0} ", i);
  •   }
  •   Console.WriteLine();
  •   Console.WriteLine("индекс значения 30 : {0} ", Arra.BinarySearch(30));
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
10 20 30 40 50
индекс значения 30 : 2