基本概念
type[] identifier;
C#数组不同于C语言数组,因为它们实际上是System.Array对象。因此,C#数组通过属性和方法提供了只有类才有的灵活性和威力,但使 用的语法与C语言数组一样简单。
创建数组
int[] arrary = new int[5];
创建一个可包含5个int值的数组。
和C语言不同的是将“[ ]”放到变量名之前。
交错数组
由于交错数组的每个元素又是一个数组,因此不同于矩形数组,交错数组每行的长度可以不同。
int [][] = {
new[] {10},
new[] {20,30},
new[] {40,50,60}
};
int [,][] j2;
j2 = new int[3,2][];//是一个泛型集合
数组索引
数组初始化
int[] arrary = int int[5];
for(int i = 0;i < array.Length;i++)
{
array[i] = i*2;
}
int[] array = {1,2,3,5};
int[,] array = { {0, 1}, {2, 3}, {4, 5}, {6, 7}, {8, 9} };
System.Array类
是数组的基类,只有运行时和编译器可显示从它派生出起来类。
索引器
索引器可以像访问数组那样访问对象数据。
(一)索引器是用签名而不是名称标识的。
1.签名指其形参的数量和类型。
(二)索引器只能是实例成员。
要声明索引器,可使用如下语法:
type this [type parameter]
{
get;
set;
}
class IndexerExample
{
private string[] array = new string[4] {"now","is","the","time" };
public int Length
{
get
{
return this.array.Length;
}
}
public string this[int index]
{
get
{
return this.array[index];
}
set
{
this.array[index] = value;
}
}
}
static void Main(string[] args)
{
IndexerExample example1 = new IndexerExample();
for (int i = 0; i < 4; i++)
{
Console.WriteLine("index[{0}]={1}",i, example1[i]);
}
}
泛型集合
using System.Collections;//非泛型类集合的命名空间。
//非泛型类的集合 不固定数据类型
using System.Collections.Generic;//泛型类集合的命名空间。
<1>非泛型类的集合和泛型类的集合的区别
前者是不固定数据类型 ,后者固定数据类型
比如非泛型集合的ArrayList及Hashtable.
只要定义了ArrayList arraylist=new ArrayList();
arraylist.add("1");
arraylist.add(100);
可以增加String类型,int类型的数据。
泛型版本的ArrayList 是List
List<String> list=new List<string>();
list.add("bb");//这里只能添加String类型的数据
Hashtable与Distinctionary
<2>有了数组,为什么出现集合的概念?区别是?
数组长度是固定的。
集合的长度是不固定的
列表
列表也是使用数字索引的对象,不同的是可以在需要的时候动态调整**List
List成员
声明List0