概述
同事想实现一个保留添加顺序的字典表,用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 ;i < sl.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
}
}
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 ;i < sl.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值,可能在某些情况下会用得到。
转载于:https://www.cnblogs.com/Pharaoh/archive/2005/05/16/156202.html
最后
以上就是想人陪小蘑菇为你收集整理的不排序和可以重复Key的SortedList。的全部内容,希望文章能够帮你解决不排序和可以重复Key的SortedList。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复