现在的位置: 首页 > 综合 > 正文

不排序和可以重复Key的SortedList。

2013年02月07日 ⁄ 综合 ⁄ 共 1088字 ⁄ 字号 评论关闭

同事想实现一个保留添加顺序的字典表,用Hashtableb不能满足要求,普通的SortedList会自动排序,看了一下帮助,实现方法非常简单,代码如下:

using System;
using System.Collections;

namespace testSortedList
{
    
class Class1
    {
        [STAThread]
        
static void Main(string[] args)
        {
            SortedList sl 
= new SortedList(new MySort());        //不排序
            sl.Add(333,333);
            sl.Add(
111,111);
            sl.Add(
222,222);
            sl.Add(
111,112);

            PrintList(sl);

            Console.ReadLine();
        }

        private static void PrintList(SortedList sl)
        {
            
for(int i=0;isl.Count ;i++)
            {
                Console.WriteLine(
"{0}\t{1}",sl.GetKey(i),sl.GetByIndex(i));
            }
//end for
        }//end fn()

    }
    
public class MySort: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
    }

}

只要Compare函数的返回结果不等于0就可以添加相同的Key,这样可以实现既可以排序,又可以有相同的Key值,可能在某些情况下会用得到。

【上篇】
【下篇】

抱歉!评论已关闭.