Что я должен использовать вместо LoadWithPartialName ()?

Это частично зависит от того, что Вы хотите произойти при столкновении с дубликатами. Например, Вы могли сделать:

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 и понимает, что словарь поддерживает повторение по своим парам ключ/значение.

18
задан raven 14 July 2009 в 12:08
поделиться