Вы также можете использовать функцию ToLookup
LINQ, которую вы можете использовать почти взаимозаменяемо с помощью словаря.
_people = personList
.ToLookup(e => e.FirstandLastName, StringComparer.OrdinalIgnoreCase);
_people.ToDictionary(kl => kl.Key, kl => kl.First()); // Potentially unnecessary
Это будет по существу делать GroupBy в ответе LukeH , но даст хеширование, предоставляемое Словарем. Таким образом, вам, вероятно, не нужно преобразовывать его в словарь, но просто используйте функцию LINQ First
, когда вам нужно получить доступ к значению для ключа.