想使用Hashtable中的键/值对特性,但又发现在遍历Hashtable时,出来的顺序与之前添加进去的顺序不一样。

后来,发现同样可以实现键/值对特性的结构SortedList类。看起来比Hashtable简单。

如何实现,看下面代码:

private SortedList _site = new SortedList(new NoSort());

 

#region NoSort
  /// <summary>
  /// 不排序规则
  /// </summary>
  private class NoSort: IComparer
  {
   public int Compare(object x, object y)
   {
    return -1;
   }
  }
  #endregion

 

遍历的代码如下:

foreach(DictionaryEntry de in _site)
{
     this.ddlSiteValue.Items.Add(new ListItem(de.Value.ToString(), de.Key.ToString()));
}

 

其实,并没有使用Hashtable,不过Hashtable应该也可以按这种思路实现。关键在于IComparer接口中的比较方法。

用到集合排序的地方,一般都会继承该接口,自定义符合自己逻辑的实现。

 

 

posted on 2010-07-20 11:35  Louis.Lu.Sz  阅读(371)  评论(0编辑  收藏  举报