using System.Diagnostics;
using System.Text.RegularExpressions;
using System.Globalization;
private static void Benchmark(Action act, int iterations)
Stopwatch sw = Stopwatch.StartNew();
for (int i = 0; i < iterations; i++)
Console.WriteLine((sw.ElapsedTicks).ToString());
public static void Main(string[] args)
Benchmark(() => { var result = new Program().PrivacyPolicyLocaleFormatIsInvalid("en-GB"); }, 1000);
Benchmark(() => { var result = PrivacyPolicyLocaleFormatIsInvalidStatic("en-GB"); }, 1000);
Benchmark(() => { var result = IsValidLocale("en-GB"); }, 1000);
private bool PrivacyPolicyLocaleFormatIsInvalid(string locale)
var regex = new Regex(@"^[A-z]{2}-[A-z]{2}$", RegexOptions.None, TimeSpan.FromSeconds(1));
if (regex.IsMatch(locale))
private static bool PrivacyPolicyLocaleFormatIsInvalidStatic(string locale)
var regex = new Regex(@"^[A-z]{2}-[A-z]{2}$", RegexOptions.None, TimeSpan.FromSeconds(1));
if (regex.IsMatch(locale))
public static bool IsValidLocale(string locale)
CultureInfo ci = new CultureInfo(locale);
catch (CultureNotFoundException)