zoukankan      html  css  js  c++  java
  • 转:c# ArrayList 的 Sort()方法的使用

    http://www.kehui.net/html/article/26/26000.html

    今天google了一下 接口 c#, 就看到这篇文章,想起前不久的一道面试题,竟然与之一样。
    那天回来vs.net了一下.涉及到一个陌生的IComparer参数,原来这就是一种interface.

    我看见网上有人问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 ,该接口只有一个成员函数需要你去实现。
     描述如下:
    int Compare(
       object x,
       object y
    );
    (可以去参考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);

    #结束

    愿一路奔跑不退缩,到目前一直从事.Net的B/S,C/S企业应用研发
  • 相关阅读:
    Yii2 高级模板不使用Apache配置目录,将前后台入口移到根目录
    物理路径,相对路径,绝对路径以及根目录
    其他ip无法访问Yii的gii,配置ip就可以
    move_uploaded_file() 函数
    DetailView内匿名函数不可用
    instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例 , 返回true或者false
    php 判断变量函数
    [HNOI2008] GT考试
    [Bzoj1006][HNOI2008]神奇的国度
    [BZOJ 1005] 明明的烦恼
  • 原文地址:https://www.cnblogs.com/syveen/p/95878.html
Copyright © 2011-2022 走看看