我有一個通過連接TValue
的ToString()
方法,像這樣合併兩個或更多IDictionary<TKey, TValue>
對象到一個IDictionary<TKey, string>
一個幫手:合併IDictionary - 有沒有比這更高效的方法?
public class DictionaryHelper<TKey, TValue>
{
public static IDictionary<TKey, string> MergeDictionaries<TKey, TValue>(params IDictionary<TKey, TValue>[] dictionaries) where TValue : class
{
var returnValue = new Dictionary<TKey, string>();
foreach (var dictionary in dictionaries)
{
foreach (var kvp in dictionary)
{
if (returnValue.ContainsKey(kvp.Key))
{
returnValue[kvp.Key] += kvp.Value.ToString();
}
else
{
returnValue[kvp.Key] = kvp.Value.ToString();
}
}
}
return returnValue;
}
}
雖然這很簡單,很容易讀,好像應該有一個更有效的方法來做到這一點。在那兒?
記住['kvp.Value'可以'null'。(HTTP:// MSDN .microsoft.com/en-us/library/k7z0zy8k.aspx)代碼行中有效的速度或效率? – user7116
嗯...嗯,我的預期用法不應該允許,但我同意我需要處理該問題。感謝您指出了這一點。高效的表現......我不介意在前期做更多的努力。 –
這可能會有所幫助:http://stackoverflow.com/questions/712927/how-to-add-2-dictionary-contents-without-looping-in-c-sharp –