1,Array常用属性 Length 返回元素个数,LongLength 当元素个数超出int型范围时使用,Rank返回数组的维数
2,Array类是一个抽象类,不能使用构造函数来创建数组。
但可以这样做
view plaincopy to clipboardprint?
Array iArray = new int[] { 1, 2, 3, 4 };
for (int i = 0; i < iArray.Length; i++)
{
Console.WriteLine(iArray.GetValue(i));
}
Array iArray = new int[] { 1, 2, 3, 4 };
for (int i = 0; i < iArray.Length; i++)
{
Console.WriteLine(iArray.GetValue(i));
}
或者使用静态方法CreateInstance,尤其是当事先不知道数组元素类型的时候,可以这样定义数组
其中SetValue方法用于设定,GetValue方法用于读取
view plaincopy to clipboardprint?
Array array = Array.CreateInstance(typeof(string), 3);
array.SetValue("Tom", 0);
array.SetValue("Jack", 1);
array.SetValue("Bill", 2);
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array.GetValue(i));
}
Array array = Array.CreateInstance(typeof(string), 3);
array.SetValue("Tom", 0);
array.SetValue("Jack", 1);
array.SetValue("Bill", 2);
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array.GetValue(i));
}
※该方法还可以用于创建多维数组
3,数组的复制,使用Clone()方法,
如果数组元素是值类型的,就会复制所有的值,
如果数组元素是引用类型,就复制引用
※ 如果需要包含引用类型的数组的深副本就必须迭代数组,创建新对象
为了说明引用类型的复制,见下类
view plaincopy to clipboardprint?
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Person(string FirstName, string LastName)
{
//参数与类的成员同名的时,用this指代类成员(个人建议最好不这样用)
this.FirstName = FirstName;
this.LastName = LastName;
}
//重写ToString类
public override string ToString()
{
return string.Format("{0} {1}", FirstName, LastName);
}
}
class Program
{
static void Main(string[] args)
{
Person[] persons1 = new Person[2];
persons1[0] = new Person("Tom", "lin");
persons1[1] = new Person("Jack", "Rader");
Person[] persons2 = persons1.Clone() as Person[];
persons2[0].FirstName = "复制2";
//调用复制源数组
Console.WriteLine(persons1[0].FirstName);
//结果为 复制2,而不是Tom,可见Clone方法仅仅复制了引用
Console.Read();
}
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Person(string FirstName, string LastName)
{
//参数与类的成员同名的时,用this指代类成员(个人建议最好不这样用)
this.FirstName = FirstName;
this.LastName = LastName;
}
//重写ToString类
public override string ToString()
{
return string.Format("{0} {1}", FirstName, LastName);
}
}
class Program
{
static void Main(string[] args)
{
Person[] persons1 = new Person[2];
persons1[0] = new Person("Tom", "lin");
persons1[1] = new Person("Jack", "Rader");
Person[] persons2 = persons1.Clone() as Person[];
persons2[0].FirstName = "复制2";
//调用复制源数组
Console.WriteLine(persons1[0].FirstName);
//结果为 复制2,而不是Tom,可见Clone方法仅仅复制了引用
Console.Read();
}
}
3,Array类也实现了数组中元素的冒泡排序,Sort方法.
对于简单的数组可以直接排序
Array.Sort(iArray); 其中, iArray为一个int型数组
-