Учебники

F # — изменяемые списки

Класс List <‘T> представляет строго типизированный список объектов, к которым можно получить доступ по индексу.

Это изменчивый аналог класса List. Он похож на массивы, так как к нему может обращаться индекс, однако, в отличие от массивов, списки могут быть изменены. Поэтому вам не нужно указывать размер при объявлении.

Создание изменяемого списка

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

Live Demo

(* Creating a List *)
open System.Collections.Generic

let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])

Когда вы компилируете и запускаете программу, она выдает следующий вывод:

0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia

Список (T) Класс

Класс List (T) представляет строго типизированный список объектов, к которым можно получить доступ по индексу. Он предоставляет методы для поиска, сортировки и управления списками.

В следующих таблицах представлены свойства, конструкторы и методы класса List (T).

свойства

Имущество Описание
Вместимость Получает или задает общее количество элементов, которое может содержать внутренняя структура данных без изменения размера.
подсчитывать Получает количество элементов, содержащихся в списке (T).
Вещь Получает или задает элемент по указанному индексу.

Конструкторы

Конструктор Описание
Список (Т) () Инициализирует новый экземпляр класса List (T), который является пустым и имеет начальную емкость по умолчанию.
Список (T) (IEnumerable (T)) Инициализирует новый экземпляр класса List (T), который содержит элементы, скопированные из указанной коллекции, и имеет достаточную емкость для размещения количества скопированных элементов.
Список (Т) (Int32) Инициализирует новый экземпляр класса List (T), который является пустым и имеет указанную начальную емкость.

метод

методы Описание
добавлять Добавляет объект в конец списка (T).
AddRange Добавляет элементы указанной коллекции в конец списка (T).
AsReadOnly Возвращает доступную только для чтения оболочку IList (T) для текущей коллекции.
BinarySearch (Т) Выполняет поиск во всем отсортированном списке List (T) для элемента, используя компаратор по умолчанию, и возвращает индекс элемента, начинающийся с нуля.
Бинарный поиск (T, IComparer (T)) Выполняет поиск во всем отсортированном списке List (T) для элемента, используя указанный компаратор, и возвращает индекс элемента, начинающийся с нуля.
BinarySearch (Int32, Int32, T, IComparer (T)) Выполняет поиск в диапазоне элементов в отсортированном списке List (T) для элемента с использованием указанного компаратора и возвращает индекс элемента, начинающийся с нуля.
Очистить Удаляет все элементы из списка (T).
Содержит Определяет, есть ли элемент в списке (T).
ConvertAll (TOutput) Преобразует элементы в текущем списке (T) в другой тип и возвращает список, содержащий преобразованные элементы.
CopyTo (T []) Копирует весь список (T) в совместимый одномерный массив, начиная с начала целевого массива.
CopyTo (T [], Int32) Копирует весь список (T) в совместимый одномерный массив, начиная с указанного индекса целевого массива.
CopyTo (Int32, T [], Int32, Int32) Копирует диапазон элементов из списка (T) в совместимый одномерный массив, начиная с указанного индекса целевого массива.
Равно (Объект) Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object.)
Существует Определяет, содержит ли List (T) элементы, которые соответствуют условиям, заданным указанным предикатом.
завершать Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, прежде чем он будет утилизирован сборщиком мусора (Унаследовано от Object).
найти Ищет элемент, который соответствует условиям, определенным указанным предикатом, и возвращает первое вхождение во всем Списке (T).
Найти все Извлекает все элементы, которые соответствуют условиям, определенным указанным предикатом.
FindIndex (предикат (Т)) Ищет элемент, который соответствует условиям, определенным указанным предикатом, и возвращает нулевой индекс первого вхождения во всем Списке (T).
FindIndex (Int32, Предикат (T)) Ищет элемент, который соответствует условиям, определенным указанным предикатом, и возвращает нулевой индекс первого вхождения в пределах диапазона элементов в Списке (T), который простирается от указанного индекса до последнего элемента.
FindIndex (Int32, Int32, Предикат (T)) Выполняет поиск элемента, который соответствует условиям, заданным указанным предикатом, и возвращает нулевой индекс первого вхождения в диапазоне элементов списка (T), который начинается с указанного индекса и содержит указанное количество элементов.
FindLast Ищет элемент, который соответствует условиям, заданным указанным предикатом, и возвращает последнее вхождение во всем списке (T).
FindLastIndex (предикат (Т)) Ищет элемент, который соответствует условиям, определенным указанным предикатом, и возвращает нулевой индекс последнего вхождения во всем списке (T).
FindLastIndex (Int32, Предикат (T)) Ищет элемент, который соответствует условиям, определенным указанным предикатом, и возвращает нулевой индекс последнего вхождения в пределах диапазона элементов в Списке (T), который простирается от первого элемента до указанного индекса.
FindLastIndex (Int32, Int32, Предикат (T)) Выполняет поиск элемента, который соответствует условиям, определенным указанным предикатом, и возвращает нулевой индекс последнего вхождения в диапазоне элементов списка (T), который содержит указанное количество элементов и заканчивается указанным индексом.
Для каждого Выполняет указанное действие для каждого элемента списка (T).
GetEnumerator Возвращает перечислитель, который перебирает список (T).
GetHashCode Служит в качестве хэш-функции по умолчанию. (Унаследовано от Object.)
GetRange Создает поверхностную копию диапазона элементов в исходном списке (T).
GetType Получает тип текущего экземпляра. (Унаследовано от Object.)
IndexOf (Т) Выполняет поиск указанного объекта и возвращает нулевой индекс первого вхождения во всем списке (T).
IndexOf (T, Int32) Выполняет поиск указанного объекта и возвращает нулевой индекс первого вхождения в диапазоне элементов списка (T), который простирается от указанного индекса до последнего элемента.
IndexOf (T, Int32, Int32) Выполняет поиск указанного объекта и возвращает нулевой индекс первого вхождения в диапазоне элементов списка (T), который начинается с указанного индекса и содержит указанное количество элементов.
Вставить Вставляет элемент в список (T) по указанному индексу.
InsertRange Вставляет элементы коллекции в список (T) по указанному индексу.
LastIndexOf (Т) Ищет указанный объект и возвращает нулевой индекс последнего вхождения во всем Списке (T).
LastIndexOf (T, Int32) Выполняет поиск указанного объекта и возвращает нулевой индекс последнего вхождения в диапазоне элементов списка (T), который простирается от первого элемента до указанного индекса.
LastIndexOf (T, Int32, Int32) Выполняет поиск указанного объекта и возвращает нулевой индекс последнего вхождения в диапазоне элементов списка (T), который содержит указанное количество элементов и заканчивается указанным индексом.
MemberwiseClone Создает поверхностную копию текущего объекта. (Унаследовано от Object.)
Удалить Удаляет первое вхождение определенного объекта из списка (T).
Удалить все Удаляет все элементы, которые соответствуют условиям, заданным указанным предикатом.
RemoveAt Удаляет элемент по указанному индексу List (T).
RemoveRange Удаляет ряд элементов из списка (T).
Задний ход() Меняет порядок элементов во всем Списке (T).
Обратный (Int32, Int32) Меняет порядок элементов в указанном диапазоне.
Сортировать() Сортирует элементы во всем списке (T), используя компаратор по умолчанию.
Сортировка (Сравнение (Т)) Сортирует элементы во всем Списке (T), используя указанную Систему. Сравнение (Т).
Сортировка (IComparer (Т)) Сортирует элементы во всем Списке (T), используя указанный компаратор.
Сортировка (Int32, Int32, IComparer (T)) Сортирует элементы в диапазоне элементов в List (T), используя указанный компаратор.
ToArray Копирует элементы списка (T) в новый массив.
Нанизывать Возвращает строку, которая представляет текущий объект. (Унаследовано от Object.)
TrimExcess Устанавливает емкость для фактического количества элементов в Списке (T), если это число меньше порогового значения.
TrueForAll Определяет, соответствует ли каждый элемент в Списке (T) условиям, определенным указанным предикатом.

пример

Live Demo

(* Creating a List *)
open System.Collections.Generic

let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")

printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.Insert(2, "Roots")

printfn("after inserting at index 2")
printfn"Total %d books" booksList.Count

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.RemoveAt(3)

printfn("after removing from index 3")
printfn"Total %d books" booksList.Count

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])

Когда вы компилируете и запускаете программу, она выдает следующий вывод: