首页 > 代码库 > c# 内部类使用接口IComparer实现排序
c# 内部类使用接口IComparer实现排序
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 内部类使用接口实现排序{ class Person { private string _name; private int _age; public Person(string name, int age) { _name = name; _age = age; } public string Name { get { return _name; } } public int Age { get { return _age; } } private static AgeComparer _ageCom = null; //仅是一个静态变量。 public static IComparer<Person> AgeCom { get { if (_ageCom == null) //当第一次访问静态属性的时候,自动创建一个对象。 { _ageCom = new AgeComparer(); } return _ageCom; } } private class AgeComparer : IComparer<Person> { int IComparer<Person>.Compare(Person x, Person y) { return x._age.CompareTo(y._age); } } } class Program { static void Main(string[] args) { Person[] p1 = new Person[5]; p1[0] = new Person("王亮", 27); p1[1] = new Person("张明敏", 21); p1[2] = new Person("孙晓峰", 28); p1[3] = new Person("赫敏", 25); p1[4] = new Person("刘铭", 23); foreach (Person p in p1) { Console.WriteLine(p.Name + " " + p.Age.ToString()); } Console.WriteLine("将对年龄进行排序并打印结果:"); Array.Sort(p1, Person.AgeCom); foreach (Person p in p1) { Console.WriteLine(p.Name + " " + p.Age.ToString()); } Console.ReadKey(); } }}
c# 内部类使用接口IComparer实现排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。