ArraySegment<t>的使用
ArraySegment<T> 是某个数组的包装,用于对该数组中元素的范围进行分隔。 多个 ArraySegment<T> 实例可以引用同一个原始数组,从而可能发生重叠。
Array 属性返回整个原始数组,而不是该数组的副本;因此,由 Array 属性返回的对该数组所做的更改将作用于原始数组。
原始数组必须是一维数组,并且必须具有从零开始的索引。
MSDN地址:http://msdn.microsoft.com/zh-cn/library/vstudio/1hsbd92d.aspx
下面是使用方法:
1 static void Main(string[] args) 2 { 3 int[] ar1 = { 1, 2, 3, 4, 5, 6, 7, 8 }; 4 int[] ar2 = { 2, 3, 4, 5, 6, 7, 8, 9 }; 5 var segments = new ArraySegment<int>[2] 6 { 7 new ArraySegment<int>(ar1,0,3), 8 new ArraySegment<int>(ar2,3,3) 9 }; 10 var sum = SumOfSegments(segments); 11 Console.WriteLine(sum.ToString()); 12 int[] i= segments[0].Array; 13 Console.ReadKey(); 14 } 15 16 static int SumOfSegments(ArraySegment<int>[] segments) 17 { 18 int sum = 0; 19 foreach (var segment in segments) 20 { 21 for (int i = segment.Offset; i < segment.Offset + segment.Count; i++) 22 { 23 sum += segment.Array[i]; 24 }; 25 } 26 return sum; 27 }
Android 成长之路