.NET Framework 4.5以降の場合は、ArraySegment構造体を使うことによって配列の一部分をListに追加することができます。
ArraySegment構造体を使って配列の一部をListに追加する .NET Framework 4.5
using System;
using System.Collections.Generic;
class Sample {
static void Main()
{
// Listへ格納したい内容をもった配列
var source = new int[] {0, 1, 2, 3, 4};
// 追加先となるList
var list = new List<int>();
// sourceのインデックス1から3つ分の要素をlistに追加する
// (sourceのインデックス1から3つ分の要素を参照するArraySegmentを作成して追加する)
list.AddRange(new ArraySegment<int>(source, 1, 3));
Print(list);
}
static void Print(List<int> list)
{
foreach (var e in list) {
Console.Write("{0}, ", e);
}
Console.WriteLine();
}
}
実行結果
1, 2, 3,
.NET Framework 4.5より前のバージョンでは、ArraySegment構造体がIEnumerable<T>インターフェイスを実装していないため、AddRangeメソッドでArraySegment構造体を追加することはできません。
ArraySegment構造体について詳しくは部分配列 §.ArraySegment構造体を参照してください。