Search code examples
c#emailemail-validation

validate email address from an array of strings


I need to validate that email address is valid or not from an array of strings as input?

I am having the below code which works for string emailID but i need the same for string[] emailID. Thanks in Advance!!!

public static class EmailValidator
{
  const string EmailEx = @ "^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"

  private static ErrorDetail IsEmail(string input)
  {
    return !Regex.IsMatch(input, EmailEx)
        ? new ErrorDetail { Message = "Not a valid Email" }
        : null;
  }

  public static Func <string, ErrorDetail> ValidationMethod(string emailID)
  {
    return IsEmail;
  }
}

Solution

  • Add using System.Collections.Generic; for following method to work.

    public static class EmailValidator
        {
            const string EmailEx = @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$";
    
            private static ErrorDetail IsEmail(string input)
            {
                return !Regex.IsMatch(input, EmailEx)
                    ? new ErrorDetail { Message = "Not a valid Email" }
                    : null;
            }
    
            public static Func<string, ErrorDetail> ValidationMethod(string emailID)
            {
                return IsEmail;
            }
    
            public static Dictionary<string, ErrorDetail> AreEmailValid(string[] arrEmail)
            {
                Dictionary<string, ErrorDetail> invalidEmailDict = new Dictionary<string, ErrorDetail>();
                ErrorDetail errorDetail;
    
                foreach (string str in arrEmail)
                {
                    errorDetail = IsEmail(str);
                    if (errorDetail != null)
                    {
                        invalidEmailDict.Add(str,errorDetail);
                    }
                }
    
                return invalidEmailDict;
            }
        }