国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
c# ArrayList 的排序問題! - 高濃度醬油的日志 - 網(wǎng)易博客

c# ArrayList 的排序問題!

.NET 2007-07-09 10:48:20 閱讀756 評(píng)論0   字號(hào): 訂閱

我看見網(wǎng)上有人用IComparer接口實(shí)現(xiàn)ArrayLIst 的排序問題 ,于是自己寫了個(gè)小例子,編譯已經(jīng)通過,和大家一塊分享。有不足之處,望不吝指正。

1、建一個(gè)結(jié)構(gòu)雇員結(jié)構(gòu)

 private struct Eployee{

   public string  name;

   public int age;

   public string sex;

  }

2、新建3個(gè)"雇員"

 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個(gè)"雇員" 加入"雇員列表";

 

 ArrayList EmployeeList=new ArrayList();

  EmployeeList.Add(ep1);

  EmployeeList.Add(ep2);

  EmployeeList.Add(ep3);

好了一切準(zhǔn)備就緒,現(xiàn)在希望EmployeeList中得"雇員"是按年齡排序。

ArrayList 提供了我們現(xiàn)成排序方法Sort();

它有三個(gè)重載,不管使用哪一個(gè),至少要你提供一個(gè)Comparer:IComparer;來告訴Sort方法 你對(duì)"雇員"們排序依據(jù)。

這個(gè)Comparer必須實(shí)現(xiàn)接口:System.Collections.IComparer ,該接口只有一個(gè)成員函數(shù)需要你去實(shí)現(xiàn)。

 描述如下:

[C#]

int Compare(

   object x,

   object y

);

[JScript]

function Compare(

   x : Object,

   y : Object

) : int;

 

知道了這些那我們來實(shí)現(xiàn)一個(gè)吧

private class myEmployeeCompare:System.Collections.IComparer {

   public int Compare(object x,object y){

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

   }

   

  }

因?yàn)槲覀儽容^是“雇員”age,所以我們可以放心寫實(shí)現(xiàn)語(yǔ)句

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

 myEmployeeCompare EmployeeCompare=new myEmployeeCompare();

 

ok現(xiàn)在我們可以對(duì)"雇員"們按年齡排序了

 

 EmployeeList.Sort(EmployeeCompare);

 

 

源碼:

using System;
       using System.Collections;

 

class ArrayListT{
       private struct eployee
        {
                public string name;
                public int age;
                public string sex;
         }
        ArrayListT(){}

 class eployeeCompare: System.Collections.IComparer
        {

        public int Compare(object x,object y)
               {
                            return ((eployee)x).age - ((eployee)y).age;
                }
      

 }

 public static void Main()
        {
                eployee ep1 = new eployee();
                ep1.name = "小張";
                ep1.age = 21;
                ep1.sex = "女";

         eployee ep2 = new eployee();
                ep2.name = "小李";
                ep2.age = 20;
                ep2.sex = "女";

         eployee ep3 = new eployee();
                ep3.name = "小王";
                ep3.age = 26;
                ep3.sex = "女";

          ArrayList list = new ArrayList();
                list.Add(ep1);
                list.Add(ep2);
                list.Add(ep3);

         eployeeCompare eployee = new eployeeCompare();
  
                list.Sort(eployee);

         foreach (eployee ep in list)
                {
                        Console.WriteLine("the eployee's name is :{0} age is{1}",ep.name,ep.age);
                 }  
                Console.ReadLine();

     }
         }

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C# 中的IComparable和IComparer
Linq、 集合、數(shù)組、Lambda、QuerySyntax(1)
c#對(duì)象排序
Java基礎(chǔ)-day09-重構(gòu)隨機(jī)點(diǎn)名器
writeValueAsString
java.util.ArrayList對(duì)象排序示例
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服