欢迎光临
我们一直在努力

c# ArrayList 的 Sort()方法的使用-.NET教程,C#语言

建站超值云服务器,限时71元/月

关键字:arraylist ,icomparer,接口,c#

我看见网上有人问icomparer接口的使用,于是写了个小例子,和大家一块分享。有不足之处,望不吝指正

1、建一个结构雇员的结构

private struct eployee{

public string name;

public int age;

public string sex;

}

2、新建3个"雇员"

eployee ep1=new eployee();

ep1.name="小张";

ep1.age=21;

ep1.sex="男";

eployee ep2=new eployee();

ep2.name="老李";

ep2.age=43;

ep2.sex="男";

eployee ep3=new eployee();

ep3.name="施施";

ep3.age=18;

ep3.sex="男";

3、将3个"雇员" 加入"雇员列表";

arraylist employeelist=new arraylist();

employeelist.add(ep1);

employeelist.add(ep2);

employeelist.add(ep3);

好了一切准备就绪,现在希望employeelist中得"雇员"是按年龄排序的。

咋办呢?

其实很简单,我们没必要自己去实现某个排序方法,冒泡或其他什么的。arraylist 提供了我们现成的排序方法sort();

它有三个重载,不管使用哪一个,至少要你提供一个comparer:icomparer;来告诉sort方法 你对"雇员"们的排序依据。

这个comparer必须实现接口:system.collections.icomparer ,该接口只有一个成员函数需要你去实现。

描述如下:

[visual basic]

function compare( _

byval x as object, _

byval y as object _

) as integer

[c#]

int compare(

object x,

object y

);

[c++]

int compare(

object* x,

object* y

);

[jscript]

function compare(

x : object,

y : object

) : int;

(可以去参考msdn)

知道了这些那我们来实现一个吧

private class myemployeecompare:system.collections.icomparer {

public int compare(object x,object y){

return ((eployee)x).age-((eployee)y).age;

}

}

因为我们比较的是“雇员”的age,所以我们可以放心的写实现语句

return ((eployee)x).age-((eployee)y).age;

myemployeecompare employeecompare=new myemployeecompare();

ok现在我们可以对"雇员"们按年龄排序了

employeelist.sort(employeecompare);

#结束

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » c# ArrayList 的 Sort()方法的使用-.NET教程,C#语言
分享到: 更多 (0)

相关推荐

  • 暂无文章