包含两个类的数组

时间:2012-09-28 08:17:11

标签: c# java arrays

您好我正在完成学校作业,我需要将此JAVA代码转换为C#

private Map<ItemID, ProductDescription> descriptions = new HashMap()<ItemID, ProductDescription>;

是否可以进行直接转换?

我已经决定将ItemID变为int,而ProductDescription是一个类。

7 个答案:

答案 0 :(得分:1)

您可以使用Dictionary<int, ProductDescription>代替。

Dictionary<TKey, TValue> Class

表示键和值的集合。密钥必须是唯一的。

答案 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)

有很多选择。

有一个

C#中的

Hashtable

KeyValuePair所以它可以是List<KeyValuePair<T,U>>

Dictionary //首选