這裏是ToDictionary
ToDictionary<TSource, TKey>(
IEnumerable<TSource>,
Func<TSource, TKey>)
ToDictionary<TSource, TKey>(
IEnumerable<TSource>,
Func<TSource, TKey>,
IEqualityComparer<TKey>)
ToDictionary<TSource, TKey, TElement>(
IEnumerable<TSource>,
Func<TSource, TKey>,
Func<TSource, TElement>)
ToDictionary<TSource, TKey, TElement>(
IEnumerable<TSource>,
Func<TSource, TKey>,
Func<TSource, TElement>,
IEqualityComparer<TKey>)
你想第三一個簽名,但因爲你怎麼稱呼它,並指定改爲使用第二一個和第二個論點兩個泛型類型(因爲第一居然3是擴展方法被調用的參數)不是IEqualityComparer<TKey>
。解決方法是要麼指定第三類
var dict = tList.ToDictionary<string,string,string>(m => m, c => c);
不要指定泛型類型,讓通過類型推理編譯器數字出來
var dict = tList.ToDictionary(m => m, c => c);
或者因爲你需要的產品是值你可以直接使用第一個,並避免第二個lambda。
var dict = tList.ToDictionary(c => c);
您試圖做些什麼來解決這個問題,以及您嘗試解決的問題有哪些? – Servy
@Servy我已更新我的問題:) – Ala