Csharp中的数组、集合、泛型集合

原文地址:http://www.dingos.cn/index.php?topic=877.0


【数组】
  • 数组是同一数据类型的一组值
  • 数组属于引用类型,因此存储在堆内存中
  • 数组元素初始化或给数组元素赋值都可以在声明数组时或在程序的后面阶段中进行
  • 定义-数组定义时[]必须接在类型后面,不能接在数组名后面。
    数据类型[元素个数] 数组名称;
    int[6] arrayHere;
  • 数组赋值
    string[] array2;
    array2 = new string[5]{"abcd", "efg", "hijk", "lmn", "opq"};
    string[] array3 = {"abcd", "efg", "hijk", "lmn", "opq"};

    常通过循环赋值,或获取数组中的内容(数组下标从0开始)

【数组分类】
  • 一维数组:
    int[] arr = new int[5];
  • 多维数组:
    int[,] array = new int[4, 2]; //二维数组-4行2列
    int[, ,] array1 = new int[4, 2, 3];      //三维数组
  • 交错数组:
    int[][] arr = new int[3][];    //有3行数据
    int[0][] = new int[5];        //第1行有5个元素
    int[1][] = new int[3];        //第2行有3个元素
    int[2][] = new int[8];       //第3行有8个元素

【数组说明】
  • 数组可以是一维、多维或交错的。
  • 数值数组元素的默认值设置为零。
  • 交错数组是数组的数组,因此,它的元素是引用类型,初始化为null。
  • 数组的索引从零开始:具有n个元素的数组的索引是从0到n-1。
  • 数组元素可以是任何类型,包括数组类型。

【System.Array简介】
  • Array是抽象的基类,可以通过 CreateInstance 方法来创建数组
  • Array提供创建、操作、搜索和排序数组的方法,在公共语言运行库中用作所有数组的基类。
  • 数组类型是从抽象基类型Array派生的引用类型。因此可以对C#中的所有数组使用foreach迭代。
属性:
  • Length:获得一个 32 位整数,该整数表示 Array 的所有维数中元素的总数。
  • Rank:获得一个 64 位整数,该整数表示 Array 的所有维数中元素的总数。
  • IsReadOnly:获取一个值,该值指示 Array 是否为只读。
  • IsFixedSize:获取一个值,该值指示 Array 是否具有固定大小。
方法:
  • BinarySearch:使用二进制搜索算法在一维的排序 Array 中搜索值。
  • Copy:将一个 Array 的一部分元素复制到另一个 Array 中,并根据需要执行类型强制转换和装箱。
  • CreateInstance:初始化 Array 类的新实例。
  • GetLowerBound:获取 Array 中指定维度的下限。
  • GetUpperBound:获取 Array 的指定维度的上限。
  • LastIndexOf:返回一维 Array 或部分 Array 中某个值的最后一个匹配项的索引。
  • SetValue:将当前 Array 中的指定元素设置为指定值。
  • Clear:将 Array 中的一系列元素设置为零、false 或空引用,具体取决于元素类型。
  • CopyTo:将当前一维 Array 的所有元素复制到指定的一维 Array 中。
  • GetLength:获取一个 32 位整数,该整数表示 Array 的指定维中的元素数。
  • GetValue:获取当前 Array 中指定元素的值。
  • IndexOf:返回一维 Array 或部分 Array 中某个值第一个匹配项的索引。
  • Reverse:反转一维 Array 或部分 Array 中元素的顺序。
  • Sort:对一维 Array 对象中的元素进行排序。

【对象组】
  • .NET基类中对数据结构的支持,即把许多类似的对象组合起来。最简单的数据结构就是数组。数组是System.Array类的一个实例。C#为这个类提供了独特的语法。
  • System.Array有两个优点:可以高效地访问给定下标的元素;编程简单直观。
  • 数组的缺点,即实例化时需要制定数组的大小。以后不能添加、插入或删除元素;数组必须通过下标访问其元素。

【集合】
  • 集合表示一组可以通过变量每个元素来访问的一组对象,特别可以使用foreach循环来访问它们;集合类实现了IEnumerable或ICollection接口。
  • 集合在System.Collections命名空间中;其中包括集合类、集合实现的接口及结构等。
  • System.Collections 命名空间
System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。

【泛型集合类】
  • 在.NET 1.0中,要创建一个灵活的类或方法,但该类或方法在编译时不知道使用哪个什么类时需要以Object类为基础。
  • .NET 2.0提供了范型。有了范型就不再需要范型类型,并根据需要用特定的类型替代范型类型。为了保证类型安全性,若某个类型不支持范型类,编译器会错误。
  • 在System.Collections.Generic命名空间中定义了许多范型接口和集合类。
System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。

你可能感兴趣的:(C#.Net学习,数据结构,string,.net,c#,编译器,object)