我有2个包含电子邮件地址的列表。我使用列表联盟来加入他们,以获得最终的电子邮件列表,但有时,列表中的任何一个都可能为空。发生什么事的是,当一个列表为空时,它将它添加到最终列表中作为“”之后的联合,这导致电子邮件.Send()崩溃在空的电子邮件地址。我怎么能告诉工会忽略空值?下面是我有C#列出空白值的联盟
List<string> _RecordOwnerEmailList = new List<string>();
List<string> _SubmissionEmailList = new List<string>();
List<string> _EmailList = new List<string>();
string _RecordOwnerEmails = String.Empty;
string _SubmissionEmails = String.Empty;
if (dsRecordOwner.Tables[0].Rows.Count > 0 && !String.IsNullOrEmpty(dsRecordOwner.Tables[0].Rows[0]["UpdateEmail"].ToString()))
_RecordOwnerEmails = dsRecordOwner.Tables[0].Rows[0]["UpdateEmail"].ToString().Replace(" ", "");
if (this.ID > 0)
_RecordOwnerEmailList = new List<string>(_RecordOwnerEmails.Replace(" ", "").Split(';').ToList());
if (dsEmails.Tables[0].Rows.Count > 0 && !String.IsNullOrEmpty(dsEmails.Tables[0].Rows[0]["Emails"].ToString()))
_SubmissionEmails = dsEmails.Tables[0].Rows[0]["emails"].ToString().Replace(" ", "");
_SubmissionEmailList = new List<string>(_SubmissionEmails.Replace(" ", "").Split(';').ToList());
_EmailList = _RecordOwnerEmailList.Union(_SubmissionEmailList).ToList();
string[] emails = _EmailList.ToArray();
foreach (string emailAddress in emails)
{
//send email
}
为什么将列表转换为数组?您可以轻松地遍历列表。 – 2013-03-15 17:30:35
请将您的代码格式化得更清晰。目前很难阅读。 (我还强烈建议使用较短的行,更多的语句和解释性局部变量,并在每个if语句中使用大括号,但这是针对* real *代码的,而不仅仅是SO)。 – 2013-03-15 17:31:06
代码被预先写入一个数组,我只是用列表修改了最初的数组内容。对格式化抱歉,我会在将来观看。 – 2013-03-15 17:36:20