You could use the constructor of SortedDictionary
:
var dict = new SortedDictionary<string, SpecialEvent>(list.ToDictionary(r => r.Date, r => r));
Or, as a generic method:
public static SortedDictionary<T1,T2> ToSortedDictionary<Tin,T1,T2>(this List<Tin> source, Func<Tin,T1> keyselector, Func<Tin,T2> valueselector)
{
return new SortedDictionary<T1,T2>(source.ToDictionary(keyselector, valueselector));
}