C#中数组段用法实例分析
本文实例讲述了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#程序设计有所帮助。
相关推荐
-
C#求数组中元素全排列的方法
本文实例讲述了C#求数组中元素全排列的方法.分享给大家供大家参考.具体如下: 1.算法描述 全排列的第一项是该数组的升序排列,最后一项是该数组的降序排列.本文中用到的了一个函数FindNextArray:从升序排列开始,不断使用函数FindNextArray,可以遍历全部排列,最终到达数组中元素的降序排列. FindNextArray函数的实现思路: 设有数组array为原数组的一个排列 1)找出数组的最大值 2)从后向前找:找到第一组array[i]>array[i-1]的数,以i位置为sig
-
C#中结构体和字节数组转换实现
最近在使用结构体与字节数组转化来实现socket间数据传输.现在开始整理一下.对于Marshal可以查阅msdn,关于字节数组与结构体转代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.InteropServices; namespace FileSendClient { [StructL
-
C#实现将数组内元素打乱顺序的方法
本文实例讲述了C#实现将数组内元素打乱顺序的方法.分享给大家供大家参考.具体如下: 1.泛型类代码 //泛型类 class Item<T> { T[] item; //构造函数 public Item(T[] obj) { item = new T[obj.Length]; for (int i = 0; i < obj.Length; i++) { item[i] = obj[i]; } } public Type ShowType() { return typeof(T); } //
-
C#中动态数组用法实例
本文实例讲述了C#中动态数组用法.分享给大家供大家参考.具体分析如下: ArrayList是一种动态数组,其容量可随着我们的需要自动进行扩充. ArrayList位于System.Collections命名空间中,所以我们在使用时,需要导入此命名空间. 下面,我们还是在Student类的基础上利用ArrayList操作,从而了解ArrayList的用法 public class Student { public Student(){} public Student(String name,int
-
详解C#编程中一维数组与多维数组的使用
一维数组 可按下面的示例所示声明五个整数的一维数组. int[] array = new int[5]; 此数组包含从 array[0] 到 array[4] 的元素. new 运算符用于创建数组并将数组元素初始化为它们的默认值.在此例中,所有数组元素都初始化为零. 可以用相同的方式声明存储字符串元素的数组.例如: string[] stringArray = new string[6]; 数组初始化 可以在声明数组时将其初始化,在这种情况下不需要级别说明符,因为级别说明符已经由初始化列表中的元
-
C#实现字符串转换成字节数组的简单实现方法
本文实例讲述了C#实现字符串转换成字节数组的简单实现方法.分享给大家供大家参考.具体实现方法如下: using System.Text; public static byte[] ConvertStringToByteArray(string stringToConvert) { return (new UnicodeEncoding()).GetBytes(stringToConvert); } 希望本文所述对大家的C#程序设计有所帮助.
-
C#获取数组中最大最小值的方法
根据下面函数获取数组中最大最小值即可.调用时候直接传数组范围一个float类型的变量 public float MaxOfList(float[] flotNum) { float maxValue = flotNum.ToArray().Max(); return maxValue; } public float MinOfList(float[] flotNum) { float minValue = flotNum.ToArray().Max(); for (int i = 0; i <
-
C#二维数组基本用法实例
本文实例讲述了C#二维数组基本用法.分享给大家供大家参考,具体如下: //定义数组 string[,] classes = new string[5, 2]; //正确的C#二维数组使用方法 classes[i, 0] = ""; //错误的使用方法 classes[i][0]=""; 据说这种形式的C#二维数组叫做锯齿数组, 一段例子以供参考: // 声明一个锯齿型数组,该数组有两个元素 int[][] myArray = new int[2][]; // 其中第
-
C#不重复输出一个数组中所有元素的方法
本文实例讲述了C#不重复输出一个数组中所有元素的方法.分享给大家供大家参考.具体如下: 1.算法描述 0)输入合法性校验 1)建立临时数组:与原数组元素一样.该步骤的目的是防止传入的原数组被破坏 2)对临时数组进行排序 3)统计临时数组共有多少个不同的数字.该步骤的目的是为了确定结果集数组的长度 4)建立结果集数组,只存放不同的数字 5)返回结果集 2.函数代码 /// <summary> /// 建立包含原数组内所有元素且元素间互不重复的新数组 /// </summary> //
-
C#将HashTable中键列表或值列表复制到一维数组的方法
本文实例讲述了C#将HashTable中键列表或值列表复制到一维数组的方法.分享给大家供大家参考.具体如下: 下面的示例说明如何将 Hashtable 中键的列表或值的列表复制到一维 Array 中. using System; using System.Collections; public class SamplesHashtable { public static void Main() { // Creates and initializes the source Hashtable.
-
C#比较二个数组并找出相同或不同元素的方法
本文实例讲述了C#比较二个数组并找出相同或不同元素的方法.分享给大家供大家参考,具体如下: string[] arr1 = new[] { "1", "2", "3", "4", "5" }; string[] arr2 = new[] { "1", "3", "5" }; var sameArr = arr1.Intersect(arr2).To
-
C#画笔使用复合数组绘制单个矩形的方法
本文实例讲述了C#画笔使用复合数组绘制单个矩形的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; names
-
C#字符串数组转换为整形数组的方法
本文实例讲述了C#字符串数组转换为整形数组的方法.分享给大家供大家参考.具体实现方法如下: /// <summary> /// 字符串数组转换整形数组 /// </summary> /// <param name="Content">字符串数组</param> /// <returns></returns> public static int[] ToIntArray(string[] Content) { int
随机推荐
- oracle数据库迁移到MySQL的方法总结
- jQuery图片滚动图片的效果(另类实现)
- 深入Lumisoft.NET组件POP3邮件接收与删除操作的使用详解
- Swift3.0仿支付宝二维码扫描效果
- JS阻止事件冒泡行为和闭包的方法
- Html中JS脚本执行顺序简单举例说明
- zf框架db类的分页示例分享
- Python实现子类调用父类的方法
- 解决ajax返回验证的时候总是弹出error错误的方法
- 如何使用JSP连接DB2数据库
- 15道非常经典的Java面试题 附详细答案
- Bootstrap在线电子商务网站实战项目5
- 解析Android中如何做到Service被关闭后又自动启动的实现方法
- java 内部类的详解及实例
- js文本框输入点回车触发确定兼容IE、FF等
- 一个PHP+MSSQL分页的例子
- 解决了个困扰了2天的问题,定点运算问题
- nodejs async异步常用函数总结(推荐)
- JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
- 详解SpringCloud微服务架构之Hystrix断路器