1

メールアドレスを含むリストが2つあります。私は最終的なメーリングリストを取得するためにリストユニオンを使用してそれらに参加していますが、場合によっては、どちらかのリストが空になることがあります。何が起こっているのかというと、リストが空の場合、ユニオンの後に「」として最終リストに追加され、空の電子メールアドレスでemail .Send()がクラッシュします。空の値を無視するようにユニオンに指示するにはどうすればよいですか?これが私が持っているものです

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
}
4

2 に答える 2

3

これらの空の値をWhere句で除外します

_EmailList = _RecordOwnerEmailList
  .Union(_SubmissionEmailList)
  .Where(address => !String.IsNullOrEmpty(address))
  .ToList();
于 2013-03-15T17:30:21.897 に答える
0

(_RecordOwnerEmails + ";" + _ SubmissionEmails).Split(new [] {';'}、StringSplitOptions.RemoveEmptyEntries).ToList()

于 2013-03-15T17:45:56.647 に答える