Ответ 1
Используйте ResizeArray. Это аббревиатура для типа CLI List (T), который предлагает требуемые функции, например Удалить, например.
Из библиотеки MSDN:
Класс List (T) является общим эквивалентом класса ArrayList. Это реализует общий интерфейс IList (T), используя массив, размер которого равен динамически увеличиваются по мере необходимости.
Такие методы, как Contains, IndexOf, LastIndexOf и Удалить, используют равенство для элементов списка. Средство сравнения по умолчанию для типа T определяется следующим образом. Если тип T реализует IEquatable (T), тогда сравнительный коэффициент равен Метод Equals (T) этого интерфейса; в противном случае равенство по умолчанию Comparer - Object.Equals(Object).
В методах, таких как BinarySearch и Sort, используется сопоставитель заказов для элементов списка. Сравнение по умолчанию для типа T определяется как следующим образом. Если тип T реализует общий интерфейс IComparable (T) то по умолчанию используется метод CompareTo (T) интерфейс; в противном случае, если тип T реализует неструктурный IComparable интерфейс, то по умолчанию используется метод CompareTo (Object) этого интерфейса. Если тип T не реализует ни интерфейс, не является компаратором по умолчанию, а делегат сравнения или сравнения должен быть явно указано.
Список (T) не может быть отсортирован. Вы должны отсортировать список (T) перед выполнением операций (например, BinarySearch), которые требуют Список (T) для сортировки.
Элементы этой коллекции могут быть доступны с использованием целочисленного индекса. Индексы в этой коллекции основаны на нуле.
Список (T) принимает нулевую ссылку (Nothing в Visual Basic) как действительный значение для ссылочных типов и позволяет дублировать элементы.
Пример в F#
:
open System
// an integer list
let intList =
let temp = new ResizeArray<int>() in
temp.AddRange([| 1; 2; 3 |]);
temp
// print each int using the ForEach member method
intList.ForEach( fun i -> Console.WriteLine(i) )
// unpack items from the resize array
let itemOne = intList.Item(0)
let itemTwo = intList.[1]