爲了彙總某些特定值的出現次數,我使用了dictionary<valueName:string, counter:int>
,我完全不知道這些值。 所以我寫了一個方法SetOrIncrement
,據稱是用來像彙總字典
myDictionary.SetOrIncrement(name, 1);
但是,VisualStudio的grumbls
「字典中不包含定義 ‘SetOrIncrement’,沒有擴展方法「 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;
}
}
您是否在您嘗試使用擴展方法的代碼中包含了擴展方法的名稱空間? –
不,但使用擴展方法的類位於相同的名稱空間中。 'namespace test {class user {...} public static class ExtensionMethods {...}} – Explicat
如果字典關鍵字已經存在,您是否真的很感興趣,以便忽略set的值,並依次遞增值你的意思是做一個'+ = set'嗎?在某些情況下忽略參數似乎很奇怪...... – Chris