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#获取数组中最大最小值的方法
根据下面函数获取数组中最大最小值即可.调用时候直接传数组范围一个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[] arr1 = new[] { "1", "2", "3", "4", "5" }; string[] arr2 = new[] { "1", "3", "5" }; var sameArr = arr1.Intersect(arr2).To
-
C#求数组中元素全排列的方法
本文实例讲述了C#求数组中元素全排列的方法.分享给大家供大家参考.具体如下: 1.算法描述 全排列的第一项是该数组的升序排列,最后一项是该数组的降序排列.本文中用到的了一个函数FindNextArray:从升序排列开始,不断使用函数FindNextArray,可以遍历全部排列,最终到达数组中元素的降序排列. FindNextArray函数的实现思路: 设有数组array为原数组的一个排列 1)找出数组的最大值 2)从后向前找:找到第一组array[i]>array[i-1]的数,以i位置为sig
-
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#不重复输出一个数组中所有元素的方法.分享给大家供大家参考.具体如下: 1.算法描述 0)输入合法性校验 1)建立临时数组:与原数组元素一样.该步骤的目的是防止传入的原数组被破坏 2)对临时数组进行排序 3)统计临时数组共有多少个不同的数字.该步骤的目的是为了确定结果集数组的长度 4)建立结果集数组,只存放不同的数字 5)返回结果集 2.函数代码 /// <summary> /// 建立包含原数组内所有元素且元素间互不重复的新数组 /// </summary> //
-
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#二维数组基本用法.分享给大家供大家参考,具体如下: //定义数组 string[,] classes = new string[5, 2]; //正确的C#二维数组使用方法 classes[i, 0] = ""; //错误的使用方法 classes[i][0]=""; 据说这种形式的C#二维数组叫做锯齿数组, 一段例子以供参考: // 声明一个锯齿型数组,该数组有两个元素 int[][] myArray = new int[2][]; // 其中第
-
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#将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#画笔使用复合数组绘制单个矩形的方法.分享给大家供大家参考.具体实现方法如下: 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
-
C#实现字符串转换成字节数组的简单实现方法
本文实例讲述了C#实现字符串转换成字节数组的简单实现方法.分享给大家供大家参考.具体实现方法如下: using System.Text; public static byte[] ConvertStringToByteArray(string stringToConvert) { return (new UnicodeEncoding()).GetBytes(stringToConvert); } 希望本文所述对大家的C#程序设计有所帮助.
随机推荐
- asp只采集网站可见文本的正则
- Asp中随机产生用户密码的代码
- 如何用htmlEncode来显示Unicode?
- 动态调用css文件——jquery的应用
- Linux下Tomcat8.0.44配置使用Apr的方法
- Android获取照片、裁剪图片、压缩图片
- php广告加载类用法实例
- Android实现获取签名及公钥的方法
- 如何实现动态删除javascript函数
- 创建IE各版本专属CSS IE中的if语句
- JS控制弹出新页面窗口位置和大小的方法
- jquery设置text的值示例(设置文本框 DIV 表单值)
- asp操作access提示无法从指定的数据表中删除原因分析及解决
- jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
- Oracle数据库密码重置、导入导出库命令示例应用
- jQuery输入框密码的显示隐藏【代码分享】
- JavaScript中Function函数与Object对象的关系
- 炫酷的js手风琴效果
- win2003 安装软件之PHP5 图文安装教程
- Android 双击返回键退出程序的方法总结