如何在 C# 的 foreach 循环中构建失败的电子邮件列表
本文关键字:失败 构建 邮件列表 循环 foreach | 更新日期: 2023-09-27 17:57:19
我正在尝试检查电子邮件验证以获取邮件列表。如果任何电子邮件无效,我必须发送带有虚假消息的失败邮件验证列表,我对 C# 很陌生,我们如何实现这一点?当我阅读书籍时,我发现可以通过 StringBuilder,但我找不到语法,任何人都可以提供语法。
public static string IsSMTPRequestValid(this SmtpGatewayRequest smtpRequest)
{
SmtpRequestContent content = smtpRequest.Body as SmtpRequestContent;
foreach (string email in content.EmailCC)
{
bool valid = IsEmail(email);
/* Here I would like to check in any of the mails are invalid I have to return false, with the list of invalid mails.*/
}
}
提前非常感谢。
首先,您必须创建 StringBuilder 类的实例,然后将所有无效的电子邮件附加到新行中。如果要以字符串形式返回所有电子邮件,则必须调用.ToString()
方法。
public static string IsSMTPRequestValid(this SmtpGatewayRequest smtpRequest)
{
StringBuilder invalidEmails = new StringBuilder();
SmtpRequestContent content = smtpRequest.Body as SmtpRequestContent;
content.EmailCC.Where(email => !IsEmail(email))
.ForEach(n =>
{
invalidEmails.AppendLine(n)
});
return invalidEmails.ToString();
}
或以更易于理解的形式
public static string IsSMTPRequestValid(this SmtpGatewayRequest smtpRequest)
{
StringBuilder invalidEmails = new StringBuilder();
SmtpRequestContent content = smtpRequest.Body as SmtpRequestContent;
foreach (var email in content.EmailCC)
{
if (!IsEmail(email))
{
invalidEmails.AppendLine(email);
}
}
return invalidEmails.ToString();
}
远离此解决方案,我认为最好的解决方案是返回整个项目列表。例如:
public static List<string> IsSMTPRequestValid(this SmtpGatewayRequest smtpRequest)
{
List<string> invalidEmails = new List<string>();
SmtpRequestContent content = smtpRequest.Body as SmtpRequestContent;
foreach (var email in content.EmailCC)
{
if (!IsEmail(email))
{
invalidEmails.Add(email);
}
}
return invalidEmails;
}