Во-первых, обратите внимание, что GetRange
определяется как:
System.Collections.Generic.List<T> GetRange (int index, int count);
- Где
index
- это индекс List<T>
, начинающийся с нуля, при котором диапазон
начинается.
count
- количество элементов в диапазоне.
Таким образом, выполнение list1.GetRange(3, 4);
приведет к System.ArgumentException:
, так как count
, т.е. 4
не обозначает допустимый диапазон элементов в списке.
Кроме того, использование GetRange
так же хорошо, как и если вы хотите скопировать определенный диапазон списка.
Чтобы получить список, содержащий «Хьюстон» и «Техас», вы можете вызвать GetRange
с 3
в качестве индекса и 2
в качестве количества элементов.
list1.GetRange(3, 2); // ["houston", "texas"]
К сожалению, GetRange
не берет только "начальный индекс".
Вместо этого, если вы не хотите указывать Count
в GetRange
, тогда используйте Skip
и собирайте в список:
list1.Skip(3).ToList(); // ["houston", "texas"]
Либо, если вы хотите добавить в «существующий» список, используйте AddRange
+ GetRange
:
list2.AddRange(list1.GetRange(3, 2)); // ["houston", "texas"]