我需要在 C# 中编写一个函数,该函数接受 java.util.Map 并将其转换为 C# 字典。(我正在做的项目使用IKVM在 C# 中使用一些 Java 类。)
我尝试过使用 foreach 循环(例如foreach (java.util.Map.Entry in map)
,或foreach (string key in map.keySet())
逐个元素添加到 Dictionary 中,但似乎 Java Maps 和 Sets 是不可枚举的。
我在这里最好的方法是什么?我应该使用 java.util.Iterator 吗?(原则上我并不反对使用 Java 迭代器,但感觉应该有一个更干净、更“c-sharp-y”的方式。)我想我可以得到 keySet,使用 Set 方法 toArray() , 并遍历它,但同样,它感觉不到“c-sharp-y”。我应该克服自己并做其中一件事,还是有更好的方法?(或者,在这两个选项中,哪个在所占用的时间/空间方面更有效?)
作为参考,这是我正在尝试做的事情的草图:
public Dictionary<string, object> convertMap(java.util.Map map)
{
Dictionary<string, object> dict = new Dictionary<string, object>();
foreach (String key in map.keySet()) // doesn't work; map is not enumerable
dict.Add(key, map.get(key));
return dict;
}