您好我正在完成学校作业,我需要将此JAVA代码转换为C#
private Map<ItemID, ProductDescription> descriptions = new HashMap()<ItemID, ProductDescription>;
是否可以进行直接转换?
我已经决定将ItemID变为int,而ProductDescription是一个类。
答案 0 :(得分:1)
答案 1 :(得分:1)
private Dictionary<ItemID, ProductDescription> descriptions = new Dictionary<ItemID, ProductDescription>();
hasmap确实允许一个空键输入。在(罕见?)情况下你需要这个我只需创建一个特殊的ItemID并将其用于null键。
你可以使用空键支持制作一个字典后代,但这会过度使用imho; - )
答案 2 :(得分:1)
是的,当然可以。 请看下面的例子:
IDictionary<int, string> h = new Dictionary<int, string>();
h.Add(1, "a");
h.Add(2, "b");
h.Add(3, "c");
SortedList<int, string> s = new SortedList<int, string>();
s.Add(1, "a");
s.Add(2, "b");
我认为这就是你要找的东西。
答案 3 :(得分:0)
是的,只需将HashMap
替换为Dictionary
即可。您可能希望将变量键入IDictionary
(与Java代码的精神相同),但这并非绝对必要。
答案 4 :(得分:0)
是的,您可以使用Dictionary而不是HashMap进行转换。当然,了解每个代码段并进行转换更有效。不建议尝试逐行转换,因为您可能会错过可用于解决问题的更好方法。
答案 5 :(得分:0)
这是一个很好的匹配,但是,
private IDictionary<ItemID, ProductDescription> descriptions
= new Dictionary<ItemID, ProductDescription>();
注意强>
HashMap
会接受null
个键值,而Dictionary
则不会。
如果你真的想支持null
个键值,我希望在尝试完美的.Net HashMap
之前看到你的推理。
答案 6 :(得分:0)