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(); } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。