C# 排序比较

在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),
         };
     }
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值