return p1.firstname.CompareTo(p2.firstname);
case PersonCompareType.lastname:
return p1.lastname.CompareTo(p2.lastname);
default:
throw new ArgumentException("unexpexted compare type");
}
}
}
class a
{
static void Main()
{
Person[] persons={
new Person("Emerson","Fittipaldi"),
new Person("Niki","Lauda"),
new Person("Ayrton","Senna"),
new Person("Michael","Schumacher"),
};
Array.Sort(persons ,new PersonComparer(PersonComparer.PersonCompareType.firstname));
foreach(Person p in persons)
{
Console.WriteLine(p);
}
}
}
public class Person
{
private string firstname,lastname;
public Person()
{
}
public Person (string firstName,string lastName)
{
this.firstname=firstName;
this.lastname=lastName;
}
public string Firstname
{
get
{
return firstname;
}
}
public string Lastname
{
get
{
return lastname;
}
}
public override string ToString()
{
return string.Format("{0} {1}",firstname,lastname);
}
}
case PersonCompareType.lastname:
return p1.lastname.CompareTo(p2.lastname);
default:
throw new ArgumentException("unexpexted compare type");
}
}
}
class a
{
static void Main()
{
Person[] persons={
new Person("Emerson","Fittipaldi"),
new Person("Niki","Lauda"),
new Person("Ayrton","Senna"),
new Person("Michael","Schumacher"),
};
Array.Sort(persons ,new PersonComparer(PersonComparer.PersonCompareType.firstname));
foreach(Person p in persons)
{
Console.WriteLine(p);
}
}
}
public class Person
{
private string firstname,lastname;
public Person()
{
}
public Person (string firstName,string lastName)
{
this.firstname=firstName;
this.lastname=lastName;
}
public string Firstname
{
get
{
return firstname;
}
}
public string Lastname
{
get
{
return lastname;
}
}
public override string ToString()
{
return string.Format("{0} {1}",firstname,lastname);
}
}

