在C# 的进化过程中不断简化了对象的比较方式
Type1:
public void compare2()
{
Product pct = new Product();
List<Product> pcts = pct.Products();
//直接上委托
pcts.Sort(delegate(Product x, Product y)
{
return x.Name.CompareTo(y.Name);
});
pcts.Sort((x, y) => x.Name.CompareTo(y.Name));
foreach (Product pdc2 in pcts)
{
Console.WriteLine(pdc2.Name + "," + pdc2.Age.ToString());
}
foreach (Product pdc2 in pcts.OrderBy(p=>p.Name)) //lambda表达式
{
Console.WriteLine(pdc2.Name + "," + pdc2.Age.ToString());
}
}
Type2:
/// <summary>
/// C#中的几种自定义排序
/// </summary>
class CustomSort
{
public void compare()
{
Product pct = new Product();
List<Product> pcts = pct.Products();
pcts.Sort(new ProductCompare());
foreach (Product pdc2 in pcts)
{
Console.WriteLine(pdc2.Name + "," + pdc2.Age.ToString());
}
Console.Read();
}
}
//实现IComparer<Product>接口
class ProductCompare : IComparer<Product>
{
public int Compare(Product x, Product y)
{
return x.Name.CompareTo(y.Name);
}
}
class Product
{
readonly string name;
public string Name { get { return name; } }
readonly int age;
public int Age { get { return age; } }
public Product(string name, int age)
{
this.name = name;
this.age = age;
}
public Product(){}
public List<Product> Products()
{
return new List<Product>
{
new Product(name:"Bangtao",age:15),
new Product(name:"Dangyi",age:16),
new Product(name:"Aangtao",age:15),
new Product(name:"Yangyi",age:16),
};
}
}
C# 排序比较
最新推荐文章于 2023-05-27 22:33:03 发布