string[] names;
names = new string[5];
string[0] = “Erika Anhood”;
string[1] = “Ayal Belling”;
string[2] = “Jack Daniels”;
string[3] = “Kris Kringle”;
string[4] = “Santa Claus”;
要按照字母顺序给这个数组排序,我们会使用Array类的sort方法来给names数组进行排序。Array.Sort方法会将这个数组按要求排列,这就意味着我们不需要创建另一个数组。Listing A里的代码会将这个数组排序,然后使用foreach陈述式在里面循环,并将值输出到控制台。
现在让我们更进一步创建一个Employee(雇员)类,如Listing B所示。
在Listing C里,我们创建了一个Employee数组。
让我们再次尝试使用Array.Sort()来将其排序。你会发现Listing D里的代码在Array.Sort 这一行会出现一个IComparer的异常。
这个错误会发生是因为Array.Sort不知道如何给Employee数组排序。是应该按照Firstname(名)字段排序呢?还是Lastname(姓)字段?这个异常只不过表示你没有指明应该如何排序。你可以通过在Employee类上实现Icomparable接口来达到这个目的:
public class Employee: IComparable
使用Visual Studio .NET的扩展类查看器(Expand Class Viewer),你就可以看到Icomparable接口。右击它,选择Add(添加)|
Implement Interface(实现接口)。在完成这个以后,你应该能够看到接口的实现了。
Icomparable接口具有一个带有下列签名的CompareTo:
public abstract virtual System.Int32 CompareTo ( System.Object
obj )
这种方法会返回一个整数,用来表示两个被比较对象(被比较字)的相对顺序。这样就可能返回三个值: