Вот мой код:Невозможно добавить тот же ключ словарю несколько раз
IEnumerable<ServiceTicket> troubletickets = db.ServiceTickets.Include(t => t.Company).Include(t => t.UserProfile);
var ticketGroups = new Dictionary<string, List<ServiceTicket>>();
ticketGroups = troubletickets
.GroupBy(o => o.DueDate).ToDictionary(
group => {
var firstOrDefault = @group.FirstOrDefault();
return firstOrDefault != null
? firstOrDefault.DueDate.HasValue
? firstOrDefault.DueDate.Value.ToShortDateString()
: ""
: "";
},
group => group.ToList()
).OrderBy(g => g.Key).ToDictionary(g => g.Key, g => g.Value);
ошибка, что я получаю: "Элемент с тем же ключом уже был добавлен. Это связано с тем, что значение DueDate иногда повторяется. Мой вопрос в том, как я могу сохранить ключ от добавления, если он уже существует в словаре?
Вместо использования ['ToDictionary()'] (http://msdn.microsoft.com/en-us/library/vstudio/bb549277%28v=vs.100%29.aspx), выполните итерацию элементов в запрос и построить словарь самостоятельно. Вы даже можете сделать свое собственное перечислимое расширение 'ToDictionaryWithDuplicatedKeys()'. – dbc
Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
Вы также можете использовать [HashSet] (http://msdn.microsoft.com/en-us/library/bb359438%28v=vs.110%29.aspx) - добавление дублирующего ключа возможно, но коллекция содержит элемент только один раз. Но было бы, вероятно, проще применять Distinct, как уже было предложено. – pasty