1.數組段說明
<1>. 結構ArraySegment<T>表示數組的一段。如果某方法應返回數組中的一部分,或者給
某方法傳遞數組的一部分,就可以使用數組段。通過ArraySegment<T>可以傳遞三個參數
(數組,數組段開始位置,從開始位置選擇的元素個數),也可以只傳遞一個參數
<2>. 數組段不會復制原數組的元素,但原數組可以通過ArraySegment<T>中的Array屬性訪問,
如果數組段中的元素改變了,則這些變化就會反映到原數組
2.一個例子
private int SumOfSegments(ArraySegment<int>[] segments)
{
int sum = 0;
foreach(ArraySegment<int> segment in segments)
//循環存放數組段的數組
{
for (int i = segment.Offset; i < segment.Offset +
segment.Count; i++)
//處理數組段,Offset為在元素數組中的起始位置
//Count為要提取的個數
//Arary為原始數組
{
sum += segment.Array[i];
//計算元素之和
}
}
return sum;
}
-----------調用------------------------
private void button1_Click(object sender, EventArgs e)
{
int[] arr1 = new int[] { 1,4,5,11,14,18};
int[] arr2 = new int[] {3,4,5,18,21,27,33 };
//定義數組段的數組www.2cto.com
var segments = new ArraySegment<int>[2]
{
new ArraySegment<int>(arr1,0,3),
new ArraySegment<int>(arr2,3,3)
};
var sum=SumOfSegments(segments);
MessageBox.Show(sum.ToString());
}