1)首先定义一个Person类
2)再定义一个PersonList集合类,只要继承List<Person>就好了
3)入口函数调用
Plus:Comparsion<T>这个委托类型用于排序,其签名是
小结:
用泛型的方式来定义一个集合类及一些方法,的确比继承自一个CollectionBase来的更方便,其中不用再去手动地写Add()、Remove()之类的方法了。而如果希望集合类的Add()方法使用内部访问修饰符,则还是推荐使用CollectionBase。
class Person
{
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
public Person(int age)
{
this.age = age;
}
}
{
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
public Person(int age)
{
this.age = age;
}
}
2)再定义一个PersonList集合类,只要继承List<Person>就好了
class PersonList : List<Person>
{
// 根据Comparison定义的签名,定义排序方法
public static int PersonSort(Person x, Person y)
{
if (x.Age > y.Age)
{
return -1;
}
if (x.Age < y.Age)
{
return 1;
}
return 0;
}
}
{
// 根据Comparison定义的签名,定义排序方法
public static int PersonSort(Person x, Person y)
{
if (x.Age > y.Age)
{
return -1;
}
if (x.Age < y.Age)
{
return 1;
}
return 0;
}
}
3)入口函数调用
static void Main(string[] args)
{
PersonList pList = new PersonList();
pList.Add(new Person(17));
pList.Add(new Person(21));
pList.Add(new Person(19));
pList.Add(new Person(12));
Console.WriteLine("默认顺序:");
foreach (Person p in pList)
{
Console.WriteLine(p.Age);
}
// 定义 强类型委托
Comparison<Person> sorter = new Comparison<Person>(PersonList.PersonSort);
pList.Sort(sorter);
Console.WriteLine("自定义排序:");
foreach (Person p in pList)
{
Console.WriteLine(p.Age);
}
Console.ReadKey();
}
{
PersonList pList = new PersonList();
pList.Add(new Person(17));
pList.Add(new Person(21));
pList.Add(new Person(19));
pList.Add(new Person(12));
Console.WriteLine("默认顺序:");
foreach (Person p in pList)
{
Console.WriteLine(p.Age);
}
// 定义 强类型委托
Comparison<Person> sorter = new Comparison<Person>(PersonList.PersonSort);
pList.Sort(sorter);
Console.WriteLine("自定义排序:");
foreach (Person p in pList)
{
Console.WriteLine(p.Age);
}
Console.ReadKey();
}
Plus:Comparsion<T>这个委托类型用于排序,其签名是
int method( T objectA, T objectB )
小结:
用泛型的方式来定义一个集合类及一些方法,的确比继承自一个CollectionBase来的更方便,其中不用再去手动地写Add()、Remove()之类的方法了。而如果希望集合类的Add()方法使用内部访问修饰符,则还是推荐使用CollectionBase。