La risposta accettata è un uso improprio dello ArgumentException
generato dal costruttore. Non stai davvero utilizzando le istanze RegionInfo
o ArgumentException
, il che rende molto poco chiaro lo scopo del codice.
Invece, ottenere un elenco di tutte le culture specifiche, quindi cercare attraverso le regioni di quelle culture per trovare una corrispondenza sul vostro codice ISO 3166 alpha-2:
bool IsCountryCodeValid(string countryCode)
{
return CultureInfo
.GetCultures(CultureTypes.SpecificCultures)
.Select(culture => new RegionInfo(culture.LCID))
.Any(region => region.TwoLetterISORegionName == countryCode);
}
o specificamente, per il vostro problema:
bool IsValidGermanCountryCode(string countryCode)
{
return CultureInfo
.GetCultures(CultureTypes.SpecificCultures)
.Where(culture => culture.TwoLetterISOLanguageName == "de")
.Select(culture => new RegionInfo(culture.LCID))
.Any(region => region.TwoLetterISORegionName == countryCode);
}
Si scopre che l'assicurazione sanitaria tedesca utilizza un diverso sistema di paesi di denominazione. Le dimensioni dei codici paese variavano da 1 a 3 caratteri. Grazie per l'aiuto! - Teja 0 secondi fa –
Wow..questo è davvero strano. Se fossero solo tre lettere avrei immaginato che fosse ISO 3166-1 Alpha 3 che utilizza tre lettere per il prefisso del paese (DEU per il tedesco). – Ostemar
Questo è strano; I codici ISO 3166 sono in maiuscolo. – rds