zoukankan      html  css  js  c++  java
  • 使 SortList 实现重复键排序

    SortList 默认对按Key来排序,且Key值不能重复,但有时可能需要用有重复值的Key来排序,以下是实现方式:

    1、对强类型:以float为例

     #region 使SortList能对重复键排序

        internal class ListComparer : IComparer<float>
        {
            static private ListComparer mono;
            public static ListComparer EarlyFirst
            {
                get
                {
                    if (mono == null)
                        mono = new ListComparer();
                    return mono;
                }
            }


            #region IComparer 成员
            public int Compare(float x, float y)
            {
                if (x == y)
                    return -1;
                else if (x < y)
                    return -1;
                else
                    return 1;
            }
            #endregion

        }

        internal class CList : SortedList<float, int>
        {
            public CList()
                :base(ListComparer.EarlyFirst)
            {
            }
        }
        #endregion

     用法:直接用CList类代替SortedList类

    2、对非强类型:

      首先要实现IComparer接口

       internal class ListComparer : IComparer
        {
            #region IComparer 成员
            public int Compare(object x, object y)
            {
               //return -1;//不排序

                //排序
                 int iResult = (int)x - (int)y;
                if(iResult == 0) iResult = -1;
                return iResult;       
            }
            #endregion

        }

     用法:

       SortList  st=new SortList(new ListComparer());

       st.add(11,23);

       st.add(22,23);

       st.add(11,23);

      输出结果是11,11,22

  • 相关阅读:
    UDP:用户数据报协议(User Datagram Protocol)
    线程池的使用
    SQL Server表和模式空间使用情况http://www.51myit.com/thread2466911.html
    bytetobmp and bmptobyte(Image)
    c# TCP例子转载
    POJ 4047Garden
    NYOJ 102 次方求模
    Sum
    POJ 1094 Sorting It All Out(经典拓扑,唯一排序)
    POJ 2387 Til the Cows Come Home(Dijkstra)
  • 原文地址:https://www.cnblogs.com/coolsundy/p/3821854.html
Copyright © 2011-2022 走看看