GetRangeメソッドを使うと、Listの一部分のみを複製したList(Listのサブセット)を作成することができます。

GetRangeメソッドを使ってListの一部分を切り出したListを作成する
Imports System
Imports System.Collections.Generic

Class Sample
  Shared Sub Main()
    Dim list As New List(Of String)(New String() {"Alice", "Bob", "Charlie", "Dave", "Eve"})

    ' listのインデックス2から3つ分を切り出したListを作成する
    Dim sublist As List(Of String) = list.GetRange(2, 3)

    Print(sublist)
  End Sub

  Shared Sub Print(ByVal list As List(Of String))
    For Each e As String In list
      Console.Write("{0}, ", e)
    Next

    Console.WriteLine()
  End Sub
End Class
実行結果
Charlie, Dave, Eve, 

このメソッドによる複製では簡易コピーが行われるため、参照型を要素に持つListの場合は参照のみがコピーされます。 簡易コピーについてより詳しくはオブジェクトの複製で解説しています。

このメソッドは、部分配列を構成するArraySegment構造体と似ていますが、元の配列に対するビューとして動作するArraySegmentとは異なり、GetRangeメソッドが返すListは元のListを複製したものになります。 従って、元になったList・GetRangeメソッドによって取得したListに変更を加えても、もう一方に影響が及ぶことはありません。