0

Hi im doing a school assignment, and I need to convert this JAVA code to C#

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

Is it possible to make a straight conversion?

I've already decided to make ItemID into an int, and ProductDescription is a class.

4

7 に答える 7

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");

これがあなたが探しているものだと思います。

于 2012-09-28T08:24:09.713 に答える
1

代わりにa を使用できますDictionary<int, ProductDescription>

Dictionary<TKey, TValue> Class

キーと値のコレクションを表します。キーは一意である必要があります。

于 2012-09-28T08:19:32.193 に答える
1
private Dictionary<ItemID, ProductDescription> descriptions = new Dictionary<ItemID, ProductDescription>();

hasmap では実際に 1 つの null キー エントリが許可されます。(めったに?) これが必要になるケースでは、単純に特別な ItemID を作成し、それを null キーに使用します。

もちろん、nullキーをサポートする辞書の子孫を作成することもできますが、それはやり過ぎです;-)

于 2012-09-28T08:19:54.177 に答える
0

これは良い一致ですが、

private IDictionary<ItemID, ProductDescription> descriptions
    = new Dictionary<ItemID, ProductDescription>();

ノート

HashMapnullキー値を受け入れますが、受け入れDictionaryません。

本当に重要な値をサポートしたい場合は、完全な.Net実装nullを試みる前に推論してもらいたいと思います。HashMap

于 2012-09-28T08:20:51.263 に答える
0

多くのオプションがあります。

あります

C#でハッシュテーブル

KeyValuePairだからそれはすることができますList<KeyValuePair<T,U>>

辞書//推奨

于 2012-09-28T08:21:03.143 に答える
0

はい、に置き換えるだけHashMapですDictionary。変数をIDictionary(Java コードと同じ精神で) として入力したい場合もありますが、それは厳密には必要ではありません。

于 2012-09-28T08:19:10.513 に答える
0

はい、HashMap の代わりに Dictionary を使用して変換を行うことができます。もちろん、各コードセグメントのアイデアを取得して変換する方が効果的です。問題を解決するために使用できるより良い方法を見逃す可能性があるため、行ごとに変換しようとすることはお勧めしません。

于 2012-09-28T08:19:49.433 に答える