いくつかの特定の値の出現回数を集計するために、私は を使用してdictionary<valueName:string, counter:int>
いますが、値が正確にはわかりません。だから私はメソッドを書いたがSetOrIncrement
、それはおそらく次のように使われる
myDictionary.SetOrIncrement(name, 1);
ただし、VisualStudio が不平を言うことがあります。
「辞書には 'SetOrIncrement' の定義が含まれておらず、タイプ 'Dictionary の最初の引数を受け入れる拡張メソッド 'SetOrIncrement' が見つかりませんでした。」
理由は何ですか?
SetAndIncrement
メソッドは次のとおりです。
public static class ExtensionMethods
{
public static int SetOrIncrement<TKey, int>(this Dictionary<TKey, int> dict, TKey key, int set) {
int value;
if (!dict.TryGetValue(key, out value)) {
dict.Add(key, set);
return set;
}
dict[key] = ++value;
return value;
}
}