C#数组初始化概括

开发 后端
这里介绍C#数组初始化,包括介绍用括号声明数组是C#中使用Array类的记号,在后台使用C#语法,会创建一个派生于基础Array的新类。

学习C#数组时,经常会遇到C#数组初始化问题,这里将介绍C#数组初始化问题的解决方法。

C#数组初始化

1、int[] iArray = new int[3]{2, 3, 4} 花括号被称为数组初始化器,数组初始化器只能在声明数组变量时使用,不能在声明数组之后使用C#数组初始化,还可以不指定数组的大小 int[] iArray = new int[]{2, 3, 4} 编译器会自动计算,使用C#编译器还有一种更简化的形式 int[] iArray = {2, 3, 4};

2、分清数组维数和每一维长度(上下界)的区别;

3、用括号声明数组是C#中使用Array类的记号,在后台使用C#语法,会创建一个派生于基础Array的新类。这样,就可以使用Array类为每个C#数组定义的方法和属性了。例如Length属性,还可以使用foreach语句迭代数组,其实这是使用了Array类中的GetEnumerator()方法,或者说在Array类中实现了枚举器。

4、Array类是一个抽象类,不能使用构造函数来创建数组,但除了可以使用C#语法创建数组实例外,还可以使用它的CreateInstance()静态方法创建数组,如果事先不知道元素类型,或者想创建索引不基于0的数组,就可以使用改静态方法。

5、数组是引用类型,所以将一个数组赋予另一个数组变量,就会得到两个指向同一个数组的变量。而复制数组实现ICloneable接口。这个接口定义的Clone()方法会创建(无需创建新数组则使用CopyTo方法或Array.Copy())一个数组的浅副本,也就是说,如果数组元素是值类型,就会复制所有的值,如果数组包含的是引用类型,则不复制元素本身,而只是复制引用。如果需要包含引用类型的数组的深副本,就必须迭代数组,创建新对象。

6、Array类实现了对数组中元素的冒泡排序。Sort()方法需要数组中的元素实现IComparable接口。简单类型,如String和Int32实现了IComparable接口(升序)。调用语法为Array.Sort(...)

7、类对象如果需要在数组或集合中能够被排序,就必须实现ICompable接口,这个接口定义了一个方法CompareTo();但如果排序的方式比较复杂,如需要对哪个字段进行排序,是升序还是降序,或者不能修改类的定义,则可以针对该类定义一个IComparer接口,在调用数组或集合的Sort()方法时执行它,IComparer接口定义了Compare()方法。

8、Array类实现了IEumerable、ICollection和IList接口,ICollection接口派生于IEnumerable,IList派生于ICollection。以上介绍C#数组初始化。

【编辑推荐】

  1. C#参差数组初始化概述
  2. C#数组初始化全面分析
  3. C#一维数组和多维数组浅谈
  4. C#参差数组初始化概述
  5. C#动态数组实例介绍
责任编辑:佚名 来源: 51CTO
相关推荐

2009-09-18 11:33:37

C#二维数组初始化

2009-09-02 16:52:55

C#数组初始化

2009-09-17 16:06:22

C#数组初始化

2009-08-28 11:24:48

C#一维数组初始化

2009-09-17 16:17:41

C#参差数组初始化

2009-08-28 11:09:35

C#数组初始化

2009-08-26 18:28:44

C#数组

2009-07-31 17:51:27

C#对象初始化

2009-08-28 11:43:26

C#数组初始化

2009-09-17 16:53:15

C#数组

2009-08-27 10:31:39

C#对象初始化器

2009-09-17 15:39:56

C#数组初始化

2009-09-17 17:40:36

C#动态数组

2009-08-26 15:28:52

C#对象集合初始化器

2009-08-31 09:47:22

C#静态变量初始化

2019-11-04 13:50:36

Java数组编程语言

2009-09-08 09:48:34

LINQ初始化数组

2009-09-17 16:45:56

C#数组

2009-08-31 10:38:34

C#变量初始化

2023-11-12 23:08:17

C++初始化
点赞
收藏

51CTO技术栈公众号