Asp.net mvc 如何使用逗号在单行中连接列表字符串?

Asp.net mvc 如何使用逗号在单行中连接列表字符串?,asp.net-mvc,Asp.net Mvc,我是mvc开发新手。我有一个带有validationResult验证的电子邮件文本框。我们需要一个接一个地添加多封电子邮件。因此,我们需要检查电子邮件的格式是否正确。这是验证代码: public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { var results = new List<ValidationResult>(); va

我是mvc开发新手。我有一个带有validationResult验证的电子邮件文本框。我们需要一个接一个地添加多封电子邮件。因此,我们需要检查电子邮件的格式是否正确。这是验证代码:

public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{        
    var results = new List<ValidationResult>();
    var Emailvaild = new Regex(@"^([a-za-z0-9_\-\.]+)@((\[[0-9]{1,3}" + @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-za-z0-9\-]+\" + @".)+))([a-za-z]{2,4}|[0-9]{1,3})(\]?)$");
    foreach (VEmail em in Emails)
    {
        if (!Emailvaild.IsMatch(em.Email))
        {
            results.Add(new ValidationResult(em.Email + " is an invaild", new List<string> { string.Empty }));
        }
    }

    return results;
}
公共IEnumerable验证(ValidationContext ValidationContext) { var results=新列表(); var Emailvaild=newregex(“^([a-za-z0-9\-\.]+)(\[[0-9]{1,3}”+.[0-9]{1,3}.[0-9]{1,3}.)([a-za-z0-9\-]+\.+)([a-za-z]{2,4}.[0-9]{1,3}.(\]); foreach(用电子邮件发送电子邮件) { 如果(!Emailvaild.IsMatch(em.Email)) { Add(新的ValidationResult(em.Email+“是一个invaild”,新列表{string.Empty})); } } 返回结果; }
它正在工作。每次验证电子邮件时,如果电子邮件不正确,则会显示验证消息。但每次它都会在另一条下面显示消息。例如,如果我有20封电子邮件,但每封电子邮件的格式不正确。所以它显示了20条信息,一条低于另一条。我想使用逗号加入电子邮件。

您当前的代码正在为循环迭代中的每个错误电子邮件添加一个新的
ValidationResult
对象。您可以将其移出foreach循环,并将坏电子邮件添加到循环中的另一个集合中,然后使用
string.join
方法创建字符串,该字符串是该集合中项目(坏电子邮件)的逗号分隔列表,并将其用于单个ValidationResultobject

var results = new List<ValidationResult>();
var wrongEmails = new List<string>();
foreach (VEmail em in Emails)
{
    if (!Emailvaild.IsMatch(em.Email))
    {
       wrongEmails.Add(em.Email);
    }
}
if(wrongEmails.Any())
{
  results.Add(new ValidationResult("Below emails are not good!"
                                                + string.Join(",",wrongEmails),
                                                 new List<string> { string.Empty    }));
}
return results;
var results=newlist();
var=newlist();
foreach(用电子邮件发送电子邮件)
{
如果(!Emailvaild.IsMatch(em.Email))
{
错误的电子邮件。添加(em.Email);
}
}
if(错误电子邮件.Any())
{
结果。添加(新的ValidationResult(“下面的电子邮件不好!”
+string.Join(“,”,错误电子邮件),
新列表{string.Empty});
}
返回结果;