Вы можете прямо указать использование Nullable<T>
в общей декларации, что ограничит использование Nullable
в вашем методе.
public static Dictionar<TFirstKey, Dictionary<Nullable<TSecondKey>, TValue>> Pivot<TSource, TFirstKey, TSecondKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TFirstKey> firstKeySelector, Func<TSource, Nullable<TSecondKey>> secondKeySelector, Func<IEnumerable<TSource>, TValue> aggregate)
where TSecondKey : struct
{}
В качестве использования Nullable<T>
Вы должны повторить ограничение для T
для вашей реализации.
Обратите также внимание, что Dictionary
может не удовлетворять нулевой ключ.