想要了解您是否有其中一位可以闡明這一點。 獲取的項目使用相同的密鑰已經被添加例外在下面的代碼:parallel.foreach循環問題:具有相同密鑰的項目已被添加
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;組; } } –