zoukankan      html  css  js  c++  java
  • C# 泛型2排序

         刚才怕写的太多,万一IE来个罢工岂不是白写了,所以还是先保存一下,下面接着学习排序.
    3.泛型排序
      List<T>类可以对其元素排序.Sort()方法有几个重载的版本:
      public void List<T>.Sort();
      public void List<T>.Sort(Comparison<T>);
      public void List<T>.Sort(IComparer<T>);
      public void List<T>.Sort(Int32,Int32,IComparer<T>);

    无参数的只能在集合中的元素实现了IComparable接口是使用.
    Comparison<T>是一个委托,带有两个类型的参数,返回Int,如果参数相等,该方法就返回零,如果第一个小于第二个参数,该方法就返回一个小于0 的值,否则相反.
    比较方法可以使用匿名方法,两个参数类型是Racer,在代码中,使用字符串CompareTo()比较Name属性:
                racer.Sort(delegate(Racer r1, Racer r2) return r1.Name.CompareTo(r2.Name); });
    除了使用委托外,ICompare<T>还用于给集合排序.RacerComparer类为Racer类实现了Icompare<T>接口,这个类可以按照名字,和汽车排序:
    public class RacerComparer : IComparer<Racer>
        
    {
            
    public enum CompareType
            
    {
                Name,
                Car
            }

            
    private CompareType compareType;
            
    public RacerComparer(CompareType compareType)
            
    {
                
    this.compareType = compareType;
            }

            
    public int Compare(Racer x, Racer y)
            
    {
                
    int result = 0;
                
    switch (compareType)
                
    {
                    
    case CompareType.Name:
                        result
    =x.Name.CompareTo(y.Name);
                        
    break;
                    
    case CompareType.Car:
                        result
    =x.Car.CompareTo(y.Car);
                        
    break;
                }

                
    return result;
            }

         }
    截止到这里
    我吧全部代码发上来
    Code
  • 相关阅读:
    CentOS 7基于Containerd部署Kubernetes v1.20.5
    【k8s记录】二进制安装kubernetes高可用集群全过程完整版v1.20
    前台后台$.psot交互
    $.ajax与$.post、$.get的一点区别
    layui与jQuery一起使用
    用Emmet写前端代码
    栅格布局的实现过程,容器到列的划分
    bootstrap环境
    2个爬虫
    think PHP5中,模板、控制器、JavaScript的url跳转重定向方法
  • 原文地址:https://www.cnblogs.com/whitetiger/p/1055670.html
Copyright © 2011-2022 走看看