Array 类是一个抽象类,是所有数组的基类。用方括号表示数组会创建一个派生自 Array 类的新类,这个类可以使用 Array 类定义的方法和属性。
下面说一下数组的排序。 Array 有一个静态方法给数组元素排序,该种元素类型必须实现 Icompare 接口。而简单类型(如 int,string 类型,他们已经实现了该接口,可以直接使用 sort 方法进行排序)。
下面给出示例:
public class TestSort
{
int [] myArray = {4,3,1,2,456,12,23,34};
public void Test()
{
// 调用 sort 方法对数组元素进行排序(默认排序是从小到大)
Array.Sort(myArray); // 结果:1,2,3,4,12,23,34,456
// 从大到小排序,使用 Reverse 方法反转数组
Array.Reverse(myArray); // 结果:456,34,23,12,4,3,2,1
}
}
如果是自定义类型,只需要实现泛型接口 Icompare<T> 即可。
public class MyData:IComparable<MyData>
{
public int first;
public int second;
public MyData(int f,int s)
{
first = f;
second = s;
}
// 自定义数据比较,按照 first 和 second 的大小进行从小到大排序,first 相同则比较 second
public int CompareTo(MyData obj)
{
int a = first.CompareTo(obj.first);
if(a == 0)
{
return second.CompareTo(obj.second);
}
return a;
}
}
public class TestMyArray
{
MyData [] myArray = {
new MyData(1,2),
new MyData(1,3),
new MyData(2,2),
new MyData(3,2),
new MyData(2,2),
};
public void Test()
{
// 调用 sort 方法对数组元素进行排序
Array.Sort(myArray); // 结果:(1,2),(1,3),(2,2),(2,2),(3,2)
// 从大到小排序,使用 Reverse 方法反转数组
Array.Reverse(myArray);
}
}