Лучшая опция ... просто разделите все незнаковые символы на входе (кроме знаков «x» и «впереди» +), заботясь о том, что британская тенденция писать числа в нестандартной форме +44 (0) ...
, когда попросил использовать международный префикс (в этом конкретном случае вы должны полностью отбросить (0)
).
Затем вы получите такие значения, как:
12345678901
12345678901x1234
345678901x1234
12344678901
12345678901
12345678901
12345678901
+4112345678
+441234567890
Тогда, когда вы показываете, переформатируете в свои сердца. например,
1 (234) 567-8901
1 (234) 567-8901 x1234
Вы должны разыграть его, чтобы иметь возможность использовать его:
store.Certificates.OfType<X509Certificate2>().FirstOrDefault(x =>
string.IsNullOrWhiteSpace(x?.SubjectName?.Name) &&
x.SubjectName.Name.StartsWith("CN=*.mysite.com"));
store.Certificates.Cast<X509Certificate2>()
даст вам IEnumerable<X509Certificate2>
, что вам нужно.