List排序
List三种排序
第一种
class Student : IComparable<Student>
{
private string name;
private int fenshu;
public Student(string name, int fenshu)
{
this.name = name;
this.fenshu = fenshu;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public int Fenshu
{
get
{
return fenshu;
}
set
{
fenshu = value;
}
}
public override string ToString()
{
return "Name:" + name + " Fenshu:" + fenshu;
}
public int CompareTo(Student other)
{
return other.Fenshu.CompareTo(Fenshu);
}
}
class Program
{
static void Main(string[] args)
{
List<Student> list = new List<Student>();
list.Add(new Student("张三", 88));
list.Add(new Student("李四", 77));
list.Add(new Student("王二", 98));
list.Add(new Student("小红", 96));
list.Add(new Student("小明", 66));
Console.WriteLine("排序前: ");
foreach (var a in list)
{
Console.WriteLine(a);
}
list.Sort();
//list.Sort(new CarComparer());
Console.WriteLine("排序后: ");
foreach (var a in list)
{
Console.WriteLine(a);
}
}
}
{
private string name;
private int fenshu;
public Student(string name, int fenshu)
{
this.name = name;
this.fenshu = fenshu;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public int Fenshu
{
get
{
return fenshu;
}
set
{
fenshu = value;
}
}
public override string ToString()
{
return "Name:" + name + " Fenshu:" + fenshu;
}
public int CompareTo(Student other)
{
return other.Fenshu.CompareTo(Fenshu);
}
}
class Program
{
static void Main(string[] args)
{
List<Student> list = new List<Student>();
list.Add(new Student("张三", 88));
list.Add(new Student("李四", 77));
list.Add(new Student("王二", 98));
list.Add(new Student("小红", 96));
list.Add(new Student("小明", 66));
Console.WriteLine("排序前: ");
foreach (var a in list)
{
Console.WriteLine(a);
}
list.Sort();
//list.Sort(new CarComparer());
Console.WriteLine("排序后: ");
foreach (var a in list)
{
Console.WriteLine(a);
}
}
}
第二种
class Car
{
private string name;
private int speed;
public Car(string name, int speed)
{
this.name = name;
this.speed = speed;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public int Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
public override string ToString()
{
return "Name:" + name + " Speed:" + speed;
}
}
class CarComparer : IComparer<Car>
{
public int Compare(Car x, Car y)
{
return x.Speed.CompareTo(y.Speed);
}
}
class Program
{
static void Main(string[] args)
{
List<Car> list = new List<Car>();
CarComparer b = new CarComparer();
list.Add(new Car("BMW320i", 111));
list.Add(new Car("BMW321i", 112));
list.Add(new Car("BMW520li", 100));
list.Add(new Car("BMW521li", 98));
list.Add(new Car("BMW525li", 130));
Console.WriteLine("排序前: ");
foreach (var a in list)
{
Console.WriteLine(a);
}
list.Sort(b);
//list.Sort(new CarComparer());
Console.WriteLine("排序后: ");
foreach (var a in list)
{
Console.WriteLine(a);
}
}
}
{
private string name;
private int speed;
public Car(string name, int speed)
{
this.name = name;
this.speed = speed;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public int Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
public override string ToString()
{
return "Name:" + name + " Speed:" + speed;
}
}
class CarComparer : IComparer<Car>
{
public int Compare(Car x, Car y)
{
return x.Speed.CompareTo(y.Speed);
}
}
class Program
{
static void Main(string[] args)
{
List<Car> list = new List<Car>();
CarComparer b = new CarComparer();
list.Add(new Car("BMW320i", 111));
list.Add(new Car("BMW321i", 112));
list.Add(new Car("BMW520li", 100));
list.Add(new Car("BMW521li", 98));
list.Add(new Car("BMW525li", 130));
Console.WriteLine("排序前: ");
foreach (var a in list)
{
Console.WriteLine(a);
}
list.Sort(b);
//list.Sort(new CarComparer());
Console.WriteLine("排序后: ");
foreach (var a in list)
{
Console.WriteLine(a);
}
}
}
第三种
public class Player
{
public string Name { get; set; }
public int Total { get; set; }
public Player(string name, int total)
{
Name = name;
Total = total;
}
}
class Program
{
static void Main(string[] args)
{
List<Player> lst = new List<Player>();
lst.Add(new Player("John", 100));
lst.Add(new Player("Smith", 120));
lst.Add(new Player("Cait", 97));
lst.Add(new Player("Irene", 100));
lst.Add(new Player("Ben", 100));
lst.Add(new Player("Deniel", 88));
//lst.Sort(delegate(Player x, Player y)
//{
// return y.Total.CompareTo(x.Total);
//});
//lst.Sort(delegate(Player x, Player y)
//{
// return -(x.Total.CompareTo(y.Total));
//});
lst.Sort((x,y) =>{
return x.Total.CompareTo(y.Total);
});
foreach (Player a in lst)
{
Console.WriteLine(a.Name+" "+a.Total);
}
}
}
{
public string Name { get; set; }
public int Total { get; set; }
public Player(string name, int total)
{
Name = name;
Total = total;
}
}
class Program
{
static void Main(string[] args)
{
List<Player> lst = new List<Player>();
lst.Add(new Player("John", 100));
lst.Add(new Player("Smith", 120));
lst.Add(new Player("Cait", 97));
lst.Add(new Player("Irene", 100));
lst.Add(new Player("Ben", 100));
lst.Add(new Player("Deniel", 88));
//lst.Sort(delegate(Player x, Player y)
//{
// return y.Total.CompareTo(x.Total);
//});
//lst.Sort(delegate(Player x, Player y)
//{
// return -(x.Total.CompareTo(y.Total));
//});
lst.Sort((x,y) =>{
return x.Total.CompareTo(y.Total);
});
foreach (Player a in lst)
{
Console.WriteLine(a.Name+" "+a.Total);
}
}
}