0

の値を返すにはどうすればよいですか

dictionary <string, int > 

キーが初めて見つかったときの要素???.

次のコードを試していますが、何か間違っていると確信しています。値を返すのに時間がかかるためです。

        private int GetIndex(string term)
    {
        int index = 0;
        foreach (var entry in dic)
        {

            var word = entry.Key;
            var wordFreq = entry.Value;

            if (word == term)

                index = wordFreq;

        }
        return index;
    }

助けてください?? どうもありがとう

4

3 に答える 3

3

直接リクエストするだけです:

return dic[term]

それでうまくいくはずです!

ただし、存在しないときに 0 を返したい場合は、次のようにします。

int i;
if (dic.TryGetValue(term), out i)
    return i;
else
    return 0;
于 2012-11-21T12:55:29.843 に答える
1

ディクショナリは直線的に使用されることを意図しておらず、数字を介してディクショナリにインデックスを付けることはありません。各キーは一意のハッシュ値であり、計算時に返される内部の場所を示します。はい、あなたが持っているように辞書を列挙することができますが、それは辞書が使用されることを意図した方法ではありません。

于 2012-11-21T12:57:03.627 に答える
1

Dictionaryこれについてはすでに定義されています。キーが見つからない場合に例外をスローする場合は、インデクサープロパティを使用しますdic[term]。スローしたくないが、bool見つかったかどうかを示す場合は、次のTryGetValue方法を使用します。

int result;
if (dic.TryGetValue(term, out result))
    // do something
于 2012-11-21T12:59:11.117 に答える