将 Enumeration<Integer> for 循环从 Java 转换为 C#? C# 中的 Enumeration<Integer> 到底是啥? [复制]

Posted

技术标签:

【中文标题】将 Enumeration<Integer> for 循环从 Java 转换为 C#? C# 中的 Enumeration<Integer> 到底是啥? [复制]【英文标题】:Converting Enumeration<Integer> for loop from Java to C#? What exactly is an Enumeration<Integer> in C#? [duplicate]将 Enumeration<Integer> for 循环从 Java 转换为 C#? C# 中的 Enumeration<Integer> 到底是什么? [复制] 【发布时间】:2017-06-20 17:00:15 【问题描述】:

我正在将一个项目从 Java 转换为 C#。我试图搜索这个,但我遇到的只是关于枚举的问题。有一个 Hashtable htPlaylist,循环使用 Enumeration 遍历键。如何将此代码转换为 C#,但使用字典而不是哈希表?

// My C# Dictionary, formerly a Java Hashtable.
Dictionary<int, SongInfo> htPlaylist = MySongs.getSongs();

// Original Java code trying to convert to C# using a Dictionary.
for(Enumeration<Integer> e = htPlaylist.keys(); e.hasMoreElements();

    // What would nextElement() be in a Dictonary? 
    SongInfo popularSongs = htPlaylist.get(e.nextElement());

【问题讨论】:

哎呀,这段 Java 代码有多少年了? What is the best way to iterate over a Dictionary in C#? 所以我应该只做 foreach(KeyValuePair?Java 中的 Enumeration 到底是什么?在 C# 中的等价物是什么? 忽略,我在另一个关于***上的哈希表的线程中得到了答案。这是重复的,请允许我删除。 【参考方案1】:

呃,只是一个foreach 循环?对于给定的

   Dictionary<int, SongInfo> htPlaylist = MySongs.getSongs();

要么

   foreach (var pair in htPlaylist) 
     // int key = pair.Key;
     // SongInfo info = pair.Value;
     ...
   

或者如果你只想要键:

   foreach (int key in htPlaylist.Keys) 
     ...
   

【讨论】:

以上是关于将 Enumeration<Integer> for 循环从 Java 转换为 C#? C# 中的 Enumeration<Integer> 到底是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 C# 数组对 Enumeration 使用引用类型,而 List<T> 使用可变结构?

为啥我们在枚举中写 Integer 而不是 int? [复制]

Java5,6,7新特性

java中关于Enumeration.hasMoreElements()的问题

集合框架-枚举接口Enumeration

遍历Enumeration