Это частично зависит от того, что Вы хотите произойти при столкновении с дубликатами. Например, Вы могли сделать:
var result = dictionaries.SelectMany(dict => dict)
.ToDictionary(pair => pair.Key, pair => pair.Value);
, Который аварийно завершится, если Вы получите кого-либо, делают дубликаты ключа.
РЕДАКТИРОВАНИЕ: при использовании ToLookup тогда, Вы получите поиск, который может иметь несколько значений на ключ. Вы могли затем преобразовывать это в словарь:
var result = dictionaries.SelectMany(dict => dict)
.ToLookup(pair => pair.Key, pair => pair.Value)
.ToDictionary(group => group.Key, group => group.First());
Это немного ужасно - и неэффективно - но это - самый быстрый способ сделать это с точки зрения кода. (Я не протестировал его по общему признанию.)
Вы могли записать свой собственный дополнительный метод ToDictionary2, конечно (с лучшим именем, но у меня нет времени для размышления о том теперь) - не ужасно трудно сделать, просто перезаписывание (или игнорирование) делают дубликаты ключа. Важный бит (по моему мнению) использует SelectMany и понимает, что словарь поддерживает повторение по своим парам ключ/значение.
В следующей статье объясняется, почему он устарел: http://blogs.msdn.com/suzcook/archive/2003/05/30/57159.aspx .
Итог: используйте Load и дайте ему номер версии.