C#集合概述

数组是一组具有相同名称和类型的变量集合,使用数组可以存储大量对象,可以通过索引来检索数组中的元素。但是数组初始化后不能再改变其大小。在程序中不能实现动态添加和删除元素,使数组有很多局限性。为解决这个问题,.net提供了各种集合对象,如ArrayList、HashTabel等。

集合概述:

事实上,C#中的数组上System.Array类的实例,是集合类中的一种。如果将紧密相关的数据存储到集合中,可以有效地处理这些数据。System.Array是数组的基类,System.Collections是一个命名空间,其提供一组接口和类,使用户能够对集合元素进行操作。

System.Array类的使用:

System.Array类是所有数组的基类,位于System命名空间中,提供对数组的值进行排序,反转数组,检索特定值等方法。在数组的描述中,元素表示数组中存储的值,数组长度指数组中存储值的总个数。

说明:Array类是一个抽象的基类,不能实例化,其常用的属性和方法如下:

Array类常用方法:

CreateInstance:静态方法,创建数组实例。
Copy:静态方法,可以在数组之间进行复微,可以指定复制数组中的元素,粘贴到另一个指定目标索引开始的数组。
CopyTo:实例方法,将一个一维数组中的所有元素复制到另一个一维数组中。
Clear:将数组中的元素设为0或null。
IndexOf:静态方法,返回一维数组中与给定值相匹配的元素第一次出现的索引位置。
LastIndexOf:静态方法,返回给定值在一维数组最后一次出现的索引。
Reverse:静态方法,反转一维数组中元素的顺序。
Sort:静态方法,对数组中的元素进行排序。
GetLength:实例方法,返回数组的长度。
GetLowerBound:实例方法,获得指定数组的下界。
GetUpperBound:实例方法,获得指定数组的上界。
SetValue:实例方法,将数组中的指定元素设为指定值。

Array类常用属性:

Length:数组的长度
Rank:数组的维度

注意:Array是抽象的基类,不能用如下方法实例化:

Array myarray=new Array();

通过上面的方法和属性可以看到,Array类提供了CreateInstance方法创建实例,用法如下:

Array a=Array.CreateInstance(typeof(int),4);

这段代码创建了数组名为a,数据类型为int,长度为4的数组。typeof()用来获取int型的对象。

Array.CreateInstance()方法有两个参数,一个是数据类型,另一个是数组长度。

Array类的使用实例代码如下:
using System;
class Progarm
{
static void Main()
{
    Array a = Array.CreateInstance(typeof(string), 5); //申明数组a的长度为5
    a.SetValue("是的", 0);
    a.SetValue("方的", 1);
    a.SetValue("这次", 2);
    a.SetValue("而是", 3);
    a.SetValue("并不", 4);
    Console.WriteLine("数组元素的值为");
    foreach (string str in a)
    {
      Console.WriteLine(str);
    }
    //输出元素的个数
    Console.WriteLine("\n数组的元素个数为{0}", a.Length);
    //输出数组的维数
    Console.WriteLine("\n数组的维数为{0}", a.Rank);
    //反转数组
    Array.Reverse(a);
    for (int i = 0; i < a.Length; i++)
    {
      Console.WriteLine("第{0}个元素为:{1}", i + 1, a.GetValue(i));

    }
    //对数组进行排序
    Array.Sort(a);
    for (int i = 0; i < a.Length; i++)
    {
      Console.WriteLine("第{0}个元素为:{1}", i + 1, a.GetValue(i));

    }
    //输出数组的上下限
    Console.WriteLine("数组的上限为{0},下限为{1}", a.GetUpperBound(0),a.GetLowerBound(0));
    Console.ReadKey();
}
}

使用CreateInstance创建了字符串数组,大小为5。使用SerValue方法给数组指定下标元素赋值。使用Length和Rank属性分别获取数组的长度和维度。Reverse方法反转数组。Sort方法排序数组。GetLowerBound方法获取数组的下界,GetUpperBound方法获取数组的上界。

posted on 2012-06-28 09:20  流星落  阅读(266)  评论(0编辑  收藏  举报

导航