хотел посмотреть, может ли кто-нибудь из вас, возможно, пролить свет на это. Получение элемента с тем же ключом уже был добавлен исключение в код ниже:parallel.foreach loop issue: элемент с тем же ключом уже добавлен
foreach (EmailMessage m in findResultsSentItems)
{
em.Add(m);
}
lstMailContactDeatils.Clear();
Parallel.ForEach(em,
myItem =>
{
myItem.Load();
foreach (EmailAddress e in myItem.ToRecipients)
{
try
{
MailContactDeatils _MailContactDeatils1 = new MailContactDeatils();
_MailContactDeatils1.MailID = e.Address;
_MailContactDeatils1.DisplayName = e.Name;
_MailContactDeatils1.SentTime = myItem.DateTimeSent.ToString();
// if(lstMailContactDeatils.Contains())
lstMailContactDeatils.Add(_MailContactDeatils1);
}
catch (Exception e1) { exceptions.Enqueue(e1); }
}
foreach (EmailAddress e in myItem.CcRecipients)
{
try
{
MailContactDeatils _MailContactDeatils2 = new MailContactDeatils();
_MailContactDeatils2.MailID = e.Address;
_MailContactDeatils2.DisplayName = e.Name;
_MailContactDeatils2.SentTime = myItem.DateTimeSent.ToString();
lstMailContactDeatils.Add(_MailContactDeatils2);
}
catch (Exception e2) { exceptions.Enqueue(e2); }
}
});
Оператор LINQ, где я получаю ArgumentExcpetion выброшен говоря: элемент с тем же ключом уже был добавлен
У вас есть обычное сравнение равенства, определенное в MailContactDeatils? – LordWilmore
Что такое 'lstMailContactDeatils'? –
lstMailContactDeatils - это список типов MailContactDeatils ..... public class MailContactDeatils { public string DisplayName {get; задавать; } public string MailID {get; задавать; } public string SentTime {get; задавать; } } –