然而,我花了很多时间,使C#类推论达到我所希望的目的。 我有一个非常具体的情况,即我拥有大量变数。
ConcurrentDictionary<T, IDictionary<U, V> >
如果T,U,V可以是一些任意的,如长期、隐蔽或任何。
我想写出与这些变量有关的方法,特别是审查这些变量的图表。
因此,我写了一种方法。
public static IOrderedEnumerable<Tuple<int,int>> GetDictionaryHistogram<T, U, V, W>(T dictionary) where T : ConcurrentDictionary<U, IDictionary<V, W>>
{
return dictionary.Select(p => p.Value.Count)
.GroupBy(p => p)
.Select(p => new Tuple<int, int>(p.Key, p.Count()))
.OrderBy(p => p.Item1);
}
But when I try to call it, C# gives me an error that it cannot infer the types. For example on a variable of type
ConcurrentDictionary<int,IDictionary<int, int> > foo;
我发现错误:
Error 118 The type arguments for method Auditor.AuditorHelpers.GetDictionaryHistogram(T) cannot be inferred from the usage. Try specifying the type arguments explicitly.
我有什么错误?