C#数组,多维数组,动态数组
C#数组,多维数组,动态数组数组 Array
C#Array类说明: 提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。 数组可分为一维数组和多维数组。数组索引从0开始,array[0]表示第一个元素,最后一个元素表示为 array.Length-1。 Array 类是支持数组的语言实现的基类。但是,只有系统和编译器能够从 Array 类显式派生。用户应当使用由语言提供的数组构造。 一个元素就是 Array 中的一个值。Array 的长度是它可包含的元素总数。Array 的秩是 Array 中的维数。 Array 中维度的下限是 Array 中该维度的起始索引,多维 Array 的各个维度可以有不同的界限。 数组原形。参考System.Array metadata: public abstract class Array : ICloneable, IList, ICollection, IEnumerable { ... } 一维数组定义 string[] sArray = new string[10]; //定义长度为10的字符串数组 int[] iArray = new int[1]; //定义长度为1的数字数组 long[] lArray = new long[] { };//定义长度为0的长整型数组 int[] iValue = new int[3] { 100, 200, 300 };//定义数组并初始化值 //定义数组并初始化值相当于: iValue[0]=100; iValue[1]=200; iValue[2]=300; 下面数组定义会编译错误 //Array creation must have array size or array initializer //必须定义数组长度或初始化数组 int[] iArrayNoElement=new int[]; //没有指定长度 多维数组定义 数组可以具有多个维度。 //two-dimensional //多维数组定义 int[,] twoDim = new int[2, 4]; //定义2行,每行4列的整数数组 int[,] twoDim = new int[2, 3] { { 1, 2, 3 }, { 100, 200, 300 } }; //2维数组赋值 //twoDim 相当于: twoDim[0,0] =1; twoDim[0,1] =2; twoDim[0,2] =3; twoDim[1,0] =100; twoDim[1,1] =200; twoDim[1,2] =300; 一维/多维数组测试案例 public class TestMultiArray { public void Test() { //定义2维数组 int[,] ma = new int[4, 2]; ma[0, 0] = 3; ma[0, 1] = 34; //第1行结束 ma[1, 0] = 1; ma[1, 1] = 8;//第2行结束 ma[2, 0] = 898; ma[2, 1] = 83;//第3行结束 ma[3, 0] = 352; ma[3, 1] = 19;//第4行结束 //将2维数组转换为1维数组 int[] asm = new int[ma.Length]; //ma.Length=2维数组数量 //转换过程 int t = 0; for (int i = 0; i < 4; i++) { for (int s = 0; s < 2; s++) { asm[t] = ma[i, s]; t++; //计算器 } } Array.Sort(asm); //排序 //输出显示 foreach (int z in asm) Console.WriteLine(z.ToString()); } } 动态数组(ArrayList) 经常使用的一个类,使用大小可按需动态增加的数组实现IList 接口。 不保证会对 ArrayList 排序。在执行需要对 ArrayList 排序的操作(如 BinarySearch)之前,必须对 ArrayList 进行排序。 ArrayList 的容量是 ArrayList 可以保存的元素数。ArrayList 的默认初始容量为 0。随着元素添加到 ArrayList 中,容量会根据需要通过重新分配自动增加。可通过调用 TrimToSize 或通过显式设置 Capacity 属性减少容量。 使用整数索引可以访问此集合中的元素。此集合中的索引从零开始。 ArrayList 接受空引用作为有效值并且允许重复的元素。 //动态数组原形。参考System.Collections public class ArrayList : IList, ICollection, IEnumerable, ICloneable { ...... } 动态数组测试案例1 using System; using System.Collections; public class SamplesArrayList { public static void Main() { //创建并初始化动态数组 ArrayList myAL = new ArrayList(); myAL.Add("Hello"); myAL.Add("World"); myAL.Add("!"); //显示动态数组的属性值 Console.WriteLine( "myAL" ); Console.WriteLine( " Count: {0}", myAL.Count ); Console.WriteLine( " Capacity: {0}", myAL.Capacity ); Console.Write( " Values:" ); PrintValues( myAL ); } public static void PrintValues( IEnumerable myList ) { foreach ( Object obj in myList ) Console.Write( " {0}", obj ); Console.WriteLine(); } } 动态数组测试案例2 public void TestDynimicArray() { IList list = new ArrayList();//定义动态数组 list.Add("www.vjsdn.com"); list.Add("www.msdn.com"); list.Add(new object()); //插入一个对象 //循环显示动态数组的元素 foreach (object o in list) Console.WriteLine(o.ToString()); }
参考文档:
C# Winform动态设置控件的值及反射技术应用 C# 动态编译及调用WebService的方法 C#转换IList对象数组为byte数组.然后通过WebService传递 标签:C#.Net组件开发 - 设计时持久化对象数组 C#.NET扩展的动态对象支持动态属性和方法以及Json格式与对象互转 C#.NET 定义动态对象dynamic以及属性和方法 C#.NET 定义动态对象dynamic以及转换JSON字符串 C#.NET通过CodeDom.Compiler动态编译计算表达式的值 FastReport.NET制作动态栏位列报表C#实例 C# 动态对象转换为实体对象支持泛型(DynamicToEntity) C# 将数组、集合、可枚举类型转换成逗号分隔的字符串(String.Join) C# LINQ 找出两个列表数组中不存在于某个list的元素 C# 动态组合SQL脚本LIKE语句及查询参数防SQL注入攻击 C# Winform 使用SUM CASE WHEN实现动态列交叉数据报表 C# FastReport实时设计报表,程序运行时动态设计报表
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |