最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入IComparable與IComparer的排序實例詳解

 更新時間:2013年06月09日 10:09:16   作者:  
本篇文章是對IComparable與IComparer的排序實例進行了詳細的分析介紹,需要的朋友參考下
如下所示:
復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace hgoApp
{
    class Comparer
    {
        static void Main()
        {
            Employee[] Employees = new Employee[5];

            Employees[0] = new Employee("張三", 2800);
            Employees[1] = new Employee("李四", 1800);
            Employees[2] = new Employee("王五", 5800);
            Employees[3] = new Employee("馬六", 12800);
            Employees[4] = new Employee("錢七", 8800);
            Console.WriteLine("按照姓名排序");
            Array.Sort(Employees);
            foreach (Employee em in Employees)
            {
                Console.WriteLine(em);
            }
            Console.WriteLine("按照薪水排序");
            Array.Sort(Employees, Employee.SalaryCom);
            foreach (Employee em in Employees)
            {
                Console.WriteLine(em);
            }
        }
    }
    class Employee : IComparable
    {
        private string _Name;
        public string Name
        {
            get { return _Name; }
        }
        private int _Salary;
        public int Salary
        {
            get { return _Salary; }
        }
        public Employee(string Name, int Salary)
        {
            _Name = Name;
            _Salary = Salary;
        }
        //顯示接口實現(xiàn)
        int IComparable.CompareTo(object obj)
        {
            if (!(obj is Employee))
            {
                throw new ArgumentException("不是Employee類");
            }
            return _Name.CompareTo(((Employee)obj)._Name);
        }
        //提供一個公用的強類型重載版本
        public int CompareTo(Employee Em)
        {
            return _Name.CompareTo(Em._Name);
        }
        //當?shù)谝淮螌嵗疎mployee的時候,_SalaryCom為空,當使用SalaryCom時,就會創(chuàng)建一個SalaryCompare對象,第2次,3次的時候,就可以直接使用_SalaryCom了
        private static SalaryCompare _SalaryCom = null;
        public static IComparer SalaryCom
        {
            get
            {
                if (_SalaryCom == null)
                {
                    _SalaryCom = new SalaryCompare();
                }
                return _SalaryCom;
            }
        }
        //嵌套類(這個類是針對薪水進行排序的類)
        private class SalaryCompare:IComparer
        {
            //使用指定的IComparer對Array中的元素進行排序
            int IComparer.Compare(object obj1,object obj2)
            {
                if (!(obj1 is Employee) || !(obj2 is Employee))
                {
                    throw new ArgumentException("不是Employee類");
                }
                return ((Employee)obj1)._Salary.CompareTo(((Employee)obj2)._Salary);
            }
        }
        public override string ToString()
        {
            return _Name +"  "+ _Salary.ToString();
        }
    }
}

相關文章

  • c# 匿名方法的小例子

    c# 匿名方法的小例子

    c# 匿名方法的小例子,需要的朋友可以參考一下
    2013-04-04
  • C#中Override關鍵字和New關鍵字的用法詳解

    C#中Override關鍵字和New關鍵字的用法詳解

    這篇文章主要介紹了C#中Override關鍵字和New關鍵字的用法,需要的朋友可以參考下
    2016-01-01
  • Linq兩個List集合取交集的實現(xiàn)

    Linq兩個List集合取交集的實現(xiàn)

    這篇文章主要介紹了Linq兩個List集合取交集的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • C#將異步改成同步方法示例

    C#將異步改成同步方法示例

    這篇文章主要為大家介紹了C#將異步改成同步方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • C# SQLite序列操作實現(xiàn)方法詳解

    C# SQLite序列操作實現(xiàn)方法詳解

    這篇文章主要介紹了C# SQLite序列操作實現(xiàn)方法,結合實例形式詳細分析了C#實現(xiàn)SQLite序列操作的具體步驟與相關操作技巧,需要的朋友可以參考下
    2017-07-07
  • C#中WPF依賴屬性的正確學習方法

    C#中WPF依賴屬性的正確學習方法

    這篇文章主要介紹了C#中WPF依賴屬性的正確學習方法 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 教你C#將CSV轉為Excel的實現(xiàn)方法

    教你C#將CSV轉為Excel的實現(xiàn)方法

    這篇文章主要介紹了C#?將CSV轉為Excel,轉換之后可執(zhí)行更多關于數(shù)據(jù)編輯、格式設置等操作,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-03-03
  • C#使用XmlDocument或XDocument創(chuàng)建xml文件

    C#使用XmlDocument或XDocument創(chuàng)建xml文件

    這篇文章主要為大家詳細介紹了C#使用XmlDocument或XDocument創(chuàng)建xml文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • C#計算程序執(zhí)行過程花費時間的方法

    C#計算程序執(zhí)行過程花費時間的方法

    這篇文章主要介紹了C#計算程序執(zhí)行過程花費時間的方法,涉及C#簡單的時間運算技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Unity3D基于UGUI實現(xiàn)虛擬搖桿

    Unity3D基于UGUI實現(xiàn)虛擬搖桿

    這篇文章主要為大家詳細介紹了Unity3D基于UGUI實現(xiàn)虛擬搖桿,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論

唐河县| 蒲城县| 汽车| 呈贡县| 罗田县| 句容市| 屏南县| 鹤山市| 招远市| 会昌县| 阿克| 竹溪县| 东港市| 株洲县| 水富县| 武穴市| 伽师县| 旬阳县| 叶城县| 西乌| 香河县| 浮山县| 饶阳县| 吕梁市| 盐边县| 河曲县| 新余市| 宜兰市| 柳州市| 玛纳斯县| 安福县| 玉田县| 兰考县| 吉隆县| 诏安县| 娄底市| 麦盖提县| 射洪县| 于田县| 凤山市| 黑河市|