【发布时间】:2016-11-20 22:55:56
【问题描述】:
我创建了一个用分号分隔的电子邮件列表,以便安全处理。
但是查看日志,有一种情况是用户在每封电子邮件后输入逗号“,”字符,从而导致An invalid character was found in the mail header: ',' 错误。
我确实查看了关于从列表中删除字符的其他答案,并使用 Linq 尝试了以下操作:
//Remove any invalid commas from the recipients list
recipients = string.Join(" ", recipients .Split().Where(w => !recipients.Contains(",")));
但是编译器告诉我List<string> 不包含.Split() 的定义,在当前上下文中不存在。重要的是,处理后的列表仍然由“;”分隔。逗号后的分号被删除。
问题:
如何从分号分隔的列表中删除逗号字符?
代码:
List<string> recipients = new List<string>();
//Split the additional email string to List<string>
// (check that the string isn't empty before splitting)
if(string.IsNullOrEmpty(adContacts.AdditionalEmails) != true)
{ recipients = adContacts.AdditionalEmails.Split(';').ToList(); }
//Remove any invalid commas from the recipients list
recipients = string.Join(" ", text.Split().Where(w => !recipients.Contains(",")));
【问题讨论】:
-
text = text.Replace(",", "");?要删除所有逗号? -
你确定只是用分号替换逗号?还是我错过了重点
-
回看代码,我的adContacts.AdditionalEmails字符串已经被分号分隔了,所以只需要去掉逗号:
adContacts.AdditionalEmails.Replace(",", ""); recipients = adContacts.AdditionalEmails.Split(';').ToList();
标签: c# linq list character delimiter