我有一個方法,我不滿意,請你告訴我如何更好地做到這一點。什麼是一個優雅的方式來轉換IDictionary <字符串,對象>爲IDictionary <字符串,字符串>
public Foo WithBar(IDictionary<string, object> parameters) {
var strStrDict = new Dictionary<string, string>(parameters.Count);
foreach(var pair in parameters)
{
strStrDict.Add(pair.Key, pair.Value != null ? pair.Value.ToString() : (string)null);
}
// Call overload which takes IDictionary<string, string>
return this.WithBar(strStrDict);
}
此代碼的工作原理,但我相信有一個很好的linq'y這樣做,我失蹤的方式。
你應該對你的方法不滿意的一個原因:它已經壞了! 'pair.Value == null? pair.Value.ToString():(string)null'應該很好地爆炸。 – 2011-04-20 21:21:27
謝謝安東尼,我問了這個問題,然後去寫單元測試。所以剛剛發現。 – 2011-04-20 21:25:52
謝謝大家的快速很好的答案。 – 2011-04-20 21:38:23