我有一個泛型函數返回一個字典。如果Dictionary的鍵是一個字符串,我想使用String.OrdinalIgnoreCase比較器。返回通用字典取決於類型
這是我的代碼:
public static Dictionary<K,V> getDict<K,V>()
{
Dictionary<K,V> aDict;
if(typeof(K)==typeof(string))
{
var stringDict = new Dictionary<string, V>(StringComparer.OrdinalIgnoreCase);
aDict = (Dictionary<K,V>)stringDict; // error here - can't convert.
}
else aDict = new Dictionary<K, V>();
// do more stuff here
return aDict;
}
但是它告訴我它
不能轉換
Dictionary<string,V>
到Dictionary<K,V>
。
我應該怎麼做?
不要讓你的泛型方法依賴於類型參數? –