using System; using System.Linq.Expressions; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { String[] strings = {"4,78,6", "2,6,24", "31", "30"}; foreach (string s in strings) { Console.WriteLine("'{0}': {1}", s, isMatch(s)); } } static Boolean isMatch(string s) { string pattern = @"^(?:[1-9]|[12]\d|30)(?:,(?:[1-9]|[12]\d|30))*$"; List a = s.Split(',').ToList(); return Regex.Match(s, pattern).Success && a.Count == a.Distinct().Count(); } }