Класс List <‘T> представляет строго типизированный список объектов, к которым можно получить доступ по индексу.
Это изменчивый аналог класса List. Он похож на массивы, так как к нему может обращаться индекс, однако, в отличие от массивов, списки могут быть изменены. Поэтому вам не нужно указывать размер при объявлении.
Создание изменяемого списка
Списки создаются с использованием нового ключевого слова и вызова конструктора списка. Следующий пример демонстрирует это —
(* 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) условиям, определенным указанным предикатом. |
пример
(* 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])
Когда вы компилируете и запускаете программу, она выдает следующий вывод: