【译文】C# 集合之:C# 数组的例子

C# 数组的例子

原文:C# Tutorial and source code


Arrays 作为一个独立的群组单元,用来存储类似的数据类型。可以依靠数组索引处理数组元素。数组索引从零开始。数值数组的元素默认设为零值,引用值数组的元素默认设为空null。

QQ截图20150523112225

整数数组

声明并初始化整数数组

int[] array = new int[4];

array[0] = 10;

array[1] = 20;

array[2] = 30;

array[3] = 40;

上面的代码,声明了有4个元素的整数数组,并且依索引赋值。这意味着数组索引范围0-3。

可以使用for 循环来访问这些值。

for (int i = 0; i < array.Length; i++)

{

MessageBox.Show (array[i]);

}

初始化数组

只用一条语句同样可以声明和初始化一个数组。

int[] array = new int[] {10, 20, 30, 40};

注意到上面的代码并没有指明数组长度,而是编译器自动确定了长度。

如何得到数组长度?

Array.Length

使用 array.Length 得到数组长度。

字符串数组

声明和初始化字符串数组

string[] week = new string[7];

week[0] = “Sunday”;

week[1] = “Monday”;

上面的C#代码声明了7个字符串的数组,并且赋了一部分的值。

string[] week = new string[] {“Sunday”,”Monday”,”Tuesday”};

上面的代码直接用值声明和初始化字符串数组。

string str = week[1];

可以通过数字索引访问数组的元素,上面的语句访问week数组的第二个元素。

下面的程序,我们定义了有7个字符串的数组,并且将每周的7个日期赋给它。接下来利用for 循环依次访问数组元素。最后使用数组对象的Length方法找到数组的结束。

string[] week = new string[7];

week[0] = “Sunday”;

week[1] = “Monday”;

week[2] = “Tuesday”;

week[3] = “Wednsday”;

week[4] = “Thursday”;

week[5] = “friday”;

week[6] = “Saturday”;

for (int i = 0; i < = week.Length-1; i++)    {

MessageBox.Show(week[i]);

}

如何改变数组的长度

使用 Array.Resize < T > 方法,可以改变数组的长度,这样就可以使数组变大或缩小。Array.Resize < T > 方法通过改变一维数组的元素数量,从而改变数组的大小。

Array.Resize < T > – T 是数组元素的类型。

这个方法一般只用在一维数组中。这个方法根据指定的大小从新分配一个新的数组,并且拷贝原数组的元素到新数组,然后用新的数组替换掉老得数组。

改变数组大小

// 初始化数组

char[] array = new char[5];

array[0] = ‘A’;

array[1] = ‘B’;

array[2] = ‘C’;

array[3] = ‘D’;

array[4] = ‘E’;

for (int i = 0; i < array.Length; i++)    {

MessageBox.Show (array[i].ToString ());

}

Array.Resize(ref array, 3);

for (int i = 0; i < array.Length; i++)    {

MessageBox.Show(array[i].ToString ());

}

Array.Resize(ref array, 3);

上面的代码将数组变为3个元素的新数组。

for..each 循环和数组

int[] array = { 10, 30, 50 }; //数组声明

foreach (int element in array)        {

Console.WriteLine(element);

}

数组排序

如同降序一样可对数组升序排序。可以用Array.Sort 方法给一维数组排序。我们也可以用Array.Reverse 方法将整个的一维数组的元素按顺序进行反转。

QQ截图20150523112552

如何用不同的数据类型新建数组

声明对象数组的时候,你可以用不同的数据类型新建数组。因为 System.Object 是所有其他类型的基类,在数组中的一个项可以是任何其他类型对象的一个引用。

System.Array.CopyTo 和 System.Array.Clone()

System.Array.CopyTo 方法可以将数组中的元素拷贝到另外已经存在的一个数组中,位置由给点的一个索引确定。System.Array.Clone() 方法返回一个新数组,而新数组不一定是一个先存在的数组,新建的数组将包含原数组的全部元素。

如何确定一个值是否在数组中?

下面的程序演示如何从一个数组中找到一个值。

string stringToCheck = "GHI";
string[] stringArray = { "ABC", "DEF", "GHI", "JKL" };
foreach (string x in stringArray)
{
    if (x.Equals (stringToCheck))
    {
        MessageBox.Show("Find the string ..." + x);
    }
}

本文译自http://csharp.net-informations.com/

更准确内容,请访问作者原文。

此条目发表在程序开发分类目录,贴了, , 标签。将固定链接加入收藏夹。