欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中数组段用法实例分析

程序员文章站 2022-04-11 07:57:38
本文实例讲述了c#中数组段用法。分享给大家供大家参考。具体分析如下: 1.数组段说明 ① 结构arraysegment表示数组的一段。如果某方法应返回...

本文实例讲述了c#中数组段用法。分享给大家供大家参考。具体分析如下:

1.数组段说明

① 结构arraysegment<t>表示数组的一段。如果某方法应返回数组中的一部分,或者给

某方法传递数组的一部分,就可以使用数组段。通过arraysegment<t>可以传递三个参数

(数组,数组段开始位置,从开始位置选择的元素个数),也可以只传递一个参数

② 数组段不会复制原数组的元素,但原数组可以通过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 };
  //定义数组段的数组
  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());
}

希望本文所述对大家的c#程序设计有所帮助。