查找扩展方法

时间:2011-09-07 17:43:08

标签: c# generics extension-methods

不是创建一个实现ILookup<T>的全新类,而是可以在字典中添加一个扩展方法来满足它吗?我正在考虑以下内容:

public static void LookupAdd(this Dictionary<T, List<V>> dict, T key, V item)
{
    if (!dict.ContainsKey(key))
    {
        dict.Add(key, new List<T>());
    }
    dict[key].Add(item);
}

无法编译,说无法识别类型。我猜我的通用参数太复杂了(特别是List<V>

2 个答案:

答案 0 :(得分:8)

您忘记添加通用参数语法:

 public static void LookupAdd<T, V>(this Dictionary<T, List<V>> dictionary, T key, V item)
 {
 }

缺少<T, V>

答案 1 :(得分:4)

...试

public static void LookupAdd<T,V>(this Dictionary<T, List<V>> dict, T key, V item)
{
    if (!dict.ContainsKey(key))
    {
        dict.Add(key, new List<V>());
    }
    dict[key].Add(item);
}

更新:

请注意,您应该

new List<V>()

你有

的地方
new List<T>()