CSharp学习笔记之二 C#中的数组

原创 2013年12月04日 09:44:28
所谓的数组就是具有相同的数据类型且按一定次序排列的一组变量的集合体,构成一个数组的这些变量称为数组元素。其实数组并不仅仅局限于存在在C#中,在C、C++、java等语言中也都存在着数组。

对于数组首先我们来看一个例子,就是关于数组的创建:

class TestArraysClass
{
    static void Main()
    {
        // 定义一个一维的整形数组,其中的数组的有5个数组元素 
        int[] array1 = new int[5];

        // 定义一个一维数组,数组中的元素个数有5个,分别为:1, 3, 5, 7, 9
        int[] array2 = new int[] { 1, 3, 5, 7, 9 };

        // 这个是数组的另外的一种初始化的方式
        int[] array3 = { 1, 2, 3, 4, 5, 6 };

        // 定义一个二维的2行3列的数组整形数组
        int[,] multiDimensionalArray1 = new int[2, 3];

        int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

        //  定义一个交错数组,也成为数组的数组
        int[][] jaggedArray = new int[6][];

        // 
        jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
    }
}

在上面的例子中演示了有关数组的定义:

如果要获得数组的长度的话所选用的方法就是用  :
 int count = numberArrayy.Length;
其中的这个Length是数组中的一个默认的属性
如果要使用数组中的的数据的时候可以通过这样的一个方法来对数据中的数据进行使用
numberArray[index],其中的index是数组中的元素的下标。其下标的范围是:0 ~ count -1;
如果要对数组中的数据进行遍历使用的话,这里面有两种方法:
 
方法一:
for(int i = 0; i < numebrArray.Lenght; i++
{
     Console.WriteLine("{0}", numberArray[
}
方法二:
foreach(int number in numberArrary)
{
     Console.WriteLinr("{0}", number);
}
 
对于多维数组的和交错数组的区别:
其实多维数组完全不等于交错数组的,首先从定义上面来讲:
对于多维数组的的地定义我们可以用如下的方法进行定义和赋值:
// Two-dimensional array.
int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// The same array with dimensions specified.
int[,] array2Da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// A similar array with string elements.
string[,] array2Db = new string[3, 2] { { "one", "two" }, { "three", "four" },
                                        { "five", "six" } };

// Three-dimensional array.
int[, ,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, 
                                 { { 7, 8, 9 }, { 10, 11, 12 } } };
// The same array with dimensions specified.
int[, ,] array3Da = new int[2, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } }, 
                                       { { 7, 8, 9 }, { 10, 11, 12 } } };

// Accessing array elements.
System.Console.WriteLine(array2D[0, 0]);
System.Console.WriteLine(array2D[0, 1]);
System.Console.WriteLine(array2D[1, 0]);
System.Console.WriteLine(array2D[1, 1]);
System.Console.WriteLine(array2D[3, 0]);
System.Console.WriteLine(array2Db[1, 0]);
System.Console.WriteLine(array3Da[1, 0, 1]);
System.Console.WriteLine(array3D[1, 1, 2]);

// Output:
// 1
// 2
// 3
// 4
// 7
// three
// 8
// 12
而对于交错数组的定义和赋值则可以通过如下的方法来进行赋值的:
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
// 或者如下的方法进行赋值

jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };
jaggedArray[1] = new int[] { 0, 2, 4, 6 };
jaggedArray[2] = new int[] { 11, 22 };

// 或者如下的方法

    int[][] jaggedArray2 = new int[][] 
{
    new int[] {1,3,5,7,9},
    new int[] {0,2,4,6},
    new int[] {11,22}
};


    int[][] jaggedArray3 = 
{
    new int[] {1,3,5,7,9},
    new int[] {0,2,4,6},
    new int[] {11,22}
};
 

数组具有以下属性:                       

  • 数组可以是一维、多维或交错的。                               

  • 当创建了数组实例时,将建立维度数和每个维度的长度。                  

  • 在实例的生存期内,这些值不能更改。 

  • 数值数组元素的默认值设置为零,而引用元素的默认值设置为 null。                              

  • 交错数组是数组的数组,因此其元素是引用类型并初始化为 null。                              

  • 数组的索引从零开始:具有 n 个元素的数组的索引是从0n-1              

  • 数组元素可以是任何类型,包括数组类型。                               

  • 数组类型是从抽象基类型 Array派生的引用类型。                 

  • 由于此类型实现了 IEnumerableIEnumerable<T>,因此可以对 C# 中的所有数组使用 foreach 迭代

数组的主要是用来存储一组数据的,数组的使用会大大的节省编码的时间,对于数组的使用这里要深入体会和理解数组在内存中的存储结构等东西。


 

相关文章推荐

C#中数组、ArrayList和List三者的区别

在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。 数组     数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元...

CSharp 基本知识-数组

1.数组CSharp 的数组从 0 开始声明数组时 "[ ]"放在类型名的后面,而不能放在标示符的后面,放在标示符的后面是别一种语法如 int[] table  而不是  int table[]另一细...

《csharp高级编程》 学习笔记 第五章 数组

第五章 数组 5.1  简单数组 5.1.1 数组的声明 int [] myArray; 5.1.2 数组的初始化 myArray=new int [4]; int[] m...
  • wuyanyi
  • wuyanyi
  • 2011年10月05日 20:20
  • 3183

CSharp学习笔记之三 C#中的字符串

什么是字符串: 字符串是 String类型的对象,它的值是文本。在内部,文本被存储为 Char对象的顺序只读集合。  C# 字符串末尾没有以 null 结尾的字符;因此 C# 字符串可以包含任意数目的...

C++ Primer Plus学习笔记之二

  • 2016年09月01日 12:06
  • 8KB
  • 下载

【C Prime Plus】学习笔记,Chapter 10,数组和指针之二

// C Prime Plus, Page 656 /*   int marbles[10];   如果要计算这个数组所有元素的和,函数的可能调用形式如下:   int total = sum...
  • sergery
  • sergery
  • 2012年01月08日 02:51
  • 379

黑马程序员-------C#学习笔记之二

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 转义字符:     什么时候用?当...
  • lee_zhi
  • lee_zhi
  • 2012年02月02日 23:05
  • 75

C# WinForm学习笔记之二

第二章: 1. Windows Forms Designer Form中的Windows Forms Designer用来保证运行期间所有的窗体组件被正确的管理,特别是那些不属于Windows F...

C#学习笔记之二:事件

关键字:event  特定类型:EventHandler,EventArgs(都位于System命名空间中) 1.事件是什么? (1)类成员的一种。委托类型。 (2)涉及两方:事件的发布者(可以定义一...

CSharp学习笔记之七 异常处理

异常处理的概述: 在C#编程中,我们可以通过异常处理语句对异常进行处理。我们经常使用到的异常处理语句有throw语句、try…catch语句和try…catch…finally语句。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CSharp学习笔记之二 C#中的数组
举报原因:
原因补充:

(最多只允许输入30个字)