如何使.NET Hashtable像Java Hashtable一样工作

Pur*_*ome 1 .net java iterator enumeration hashtable

当我将一些项添加到Java中时Hashtable,它们的顺序与.NET的顺序不同Hashtable.有什么办法可以确保.NET Hashtable与Java具有相同的顺序Hashtable吗?


我正在尝试将一些Java代码移植到C#.Java代码使用a Hashtable来跟踪某些数据.当我通过Java 或.NET (通过一个)迭代检查数据时检查顺序时,每个都按相同顺序始终具有相同的数据......但每个基于代码的顺序不同.HashtableHashtableEnumerator

我有什么方法可以使.NET Hashtable数据与Java的顺序相同Hashtable

我明白Hashtable不要处理订单 - 所以我觉得没有什么可以做的.我也无法改变Java代码中的数据类型..比如说... a Hashtable到别的东西.

这里有一些相同的数据来说明我的情况.

数据,为任一代码库添加顺序: -

  1. num | 一些数据
  2. pagenum | 一些数据
  3. x | 一些数据
  4. 顶部| 一些数据

Java代码:

private Hashtable identifiers = new Hashtable();
...
identifiers.put(symbol, identifier);
Run Code Online (Sandbox Code Playgroud)

通过枚举器迭代的Java输出:

替代文字

.NET代码:

private Hashtable Identifiers = new Hashtable();
...
Identifiers.Add(symbol, identifier);
Run Code Online (Sandbox Code Playgroud)

.NET输出通过枚举器迭代.

替代文字

任何想法或建议?

Jus*_*ner 8

不幸的是,如果没有改变集合的类型,那么就没有办法解决这个问题.Hashtables不保证订单(正如您在帖子中提到的那样).

这一切归结为以下几点:

如果订单很重要,Hashtable是错误的数据结构.