【问题标题】:C# get A2 Iso country code from country nameC# 从国家名称中获取 A2 Iso 国家代码
【发布时间】:2017-01-22 15:13:57
【问题描述】:

我正在尝试通过输入完整的国家/地区名称来获取 A2 ISO 国家/地区代码。

例如:

 var html = new WebClient().DownloadString("mysite.com");
            HtmlDocument htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(html);

            var result = htmlDoc.DocumentNode.SelectNodes("//span[@class='mem_loc']").ElementAt(0).InnerText;

这会给我一个输出例如:

Bosnia & Herzegovina

United States

Croatia

输入会是这样的:

Bosnia & Herzegovina

输出的国家代码将是:BA

对于美国:美国

克罗地亚:人力资源

等等……

在 C# 中执行此操作的最佳方法是什么?

【问题讨论】:

  • 所以你可以创建一个 List 保存县名,然后循环遍历每个并调用 fetchcode 方法。
  • @YashveerSingh 我没有 FetchCode 的逻辑,这只是一个例子。它可以是任何其他方法/类,用于从这种输入中导出这个国家代码 =)
  • 好的,但是你需要一个逻辑或者如何有效地调用该方法
  • @YashveerSingh 只是如何通过 ISO 标准获得世界上任何国家的 2 个县代码的方法,不管它是如何完成的,任何方法......
  • 好的,然后让我更新我的答案。但是您可以从每个国家/地区的 iso 代码的 wikipidea 列表中获取此信息,然后您可以将其保存在数据库中并使用它们,还是您只希望从网络上获取?

标签: c# asp.net asp.net-mvc iso country-codes


【解决方案1】:

最终做到了:

 var html = new WebClient().DownloadString("mysite.com");
            HtmlDocument htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(html);

            var result = htmlDoc.DocumentNode.SelectNodes("//span[@class='mem_loc']").ElementAt(0).InnerText;
            var regionFullNames = CultureInfo
                       .GetCultures(CultureTypes.SpecificCultures)
                       .Select(x => new RegionInfo(x.LCID))
                       ;
            var twoLetterName = Regex.Replace(regionFullNames.FirstOrDefault(
                                   region => region.EnglishName.Contains(result)
                                ).ToString(), "{.*?}","");

提供的输入:美国

输出:美国

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    相关资源
    最近更新 更多