本文转载自 http://www.cnblogs.com/overred/archive/2009/01/17/1359126.html
ArraySegment顾名思义就是Array区块,数组的小抽屉,用于对该数组中元素的范围进行分隔。比如这个数组:
String[] myArr = { "Overred", "Medloy", "Xiaoguai", "Hare" };
我们用ArraySegment这个抽屉给装起来就是:
ArraySegment<String> arrSeg = new ArraySegment<String>(myArr);
只需for一下就可以得出这个小抽屉里的myArr值(不能foreach,ArraySegment无GetEnumerator方法实现)
for ( int i = arrSeg.Offset; i < (arrSeg.Offset + arrSeg.Count); i++ ) {
Console.WriteLine( " [{0}] : {1}", i, arrSeg.Array[i] );
}
比如我们想取某个区域,可以:
ArraySegment<String> myArrSegMid = new ArraySegment<String>(myArr, 1, 3);
ArraySegment<String> myArrSegMid = new ArraySegment<String>(myArr, 1, 3);
for (int i = myArrSegMid.Offset; i < (myArrSegMid.Offset + myArrSegMid.Count); i++)
{
Console.WriteLine(" [{0}] : {1}", i, myArrSegMid.Array[i]);
}
则取myArr的索引从1到3的值,