GetRangeメソッドを使うと、Listの一部分のみを複製したList(Listのサブセット)を作成することができます。
GetRangeメソッドを使ってListの一部分を切り出したListを作成する
      using System;
using System.Collections.Generic;
class Sample {
  static void Main()
  {
    var list = new List<string>() {"Alice", "Bob", "Charlie", "Dave", "Eve"};
    // listのインデックス2から3つ分を切り出したListを作成する
    var sublist = list.GetRange(2, 3);
    Print(sublist);
  }
  static void Print(List<string> list)
  {
    foreach (var e in list) {
      Console.Write("{0}, ", e);
    }
    Console.WriteLine();
  }
}
実行結果
      Charlie, Dave, Eve,
このメソッドによる複製では簡易コピーが行われるため、参照型を要素に持つListの場合は参照のみがコピーされます。 簡易コピーについてより詳しくはオブジェクトの複製で解説しています。
このメソッドは、部分配列を構成するArraySegment構造体と似ていますが、元の配列に対するビューとして動作するArraySegmentとは異なり、GetRangeメソッドが返すListは元のListを複製したものになります。 従って、元になったList・GetRangeメソッドによって取得したListに変更を加えても、もう一方に影響が及ぶことはありません。