Das ArraySegment ist VIEL nützlicher als Sie vielleicht denken. Führen Sie den folgenden Komponententest durch und lassen Sie sich überraschen!
[TestMethod]
public void ArraySegmentMagic()
{
var arr = new[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
var arrSegs = new ArraySegment<int>[3];
arrSegs[0] = new ArraySegment<int>(arr, 0, 3);
arrSegs[1] = new ArraySegment<int>(arr, 3, 3);
arrSegs[2] = new ArraySegment<int>(arr, 6, 3);
for (var i = 0; i < 3; i++)
{
var seg = arrSegs[i] as IList<int>;
Console.Write(seg.GetType().Name.Substring(0, 12) + i);
Console.Write(" {");
for (var j = 0; j < seg.Count; j++)
{
Console.Write("{0},", seg[j]);
}
Console.WriteLine("}");
}
}
Sie sehen, alles, was Sie tun müssen, ist ein ArraySegment in IList umzuwandeln, und es wird all die Dinge tun, die Sie wahrscheinlich erwartet haben. Beachten Sie, dass der Typ immer noch ArraySegment ist, obwohl er sich wie eine normale Liste verhält.
AUSGABE:
ArraySegment0 {0,1,2,}
ArraySegment1 {3,4,5,}
ArraySegment2 {6,7,8,}
ArraySegmentes in .Net 4.5 aufzählbar.