【问题标题】:Making State abbreviations from State Names从州名制作州缩写
【发布时间】:2010-10-13 15:15:22
【问题描述】:

是否有内置的 .NET 功能可以根据州名制作州名缩写?

我知道这个函数写起来不难,但我认为 MS 已经想到了比下面的 x50 更有效的方法:

if statename.tolower = "new york" then 
  statename = "NY"
else if

任何其他提高效率的想法也值得赞赏。

【问题讨论】:

标签: c# .net vb.net


【解决方案1】:

希望对你有帮助

    public string GetState(State state)
    {
        switch (state)
        {
            case State.AL:
                return "ALABAMA";

            case State.AK:
                return "ALASKA";

            case State.AS:
                return "AMERICAN SAMOA";

            case State.AZ:
                return "ARIZONA";

            case State.AR:
                return "ARKANSAS";

            case State.CA:
                return "CALIFORNIA";

            case State.CO:
                return "COLORADO";

            case State.CT:
                return "CONNECTICUT";

            case State.DE:
                return "DELAWARE";

            case State.DC:
                return "DISTRICT OF COLUMBIA";

            case State.FM:
                return "FEDERATED STATES OF MICRONESIA";

            case State.FL:
                return "FLORIDA";

            case State.GA:
                return "GEORGIA";

            case State.GU:
                return "GUAM";

            case State.HI:
                return "HAWAII";

            case State.ID:
                return "IDAHO";

            case State.IL:
                return "ILLINOIS";

            case State.IN:
                return "INDIANA";

            case State.IA:
                return "IOWA";

            case State.KS:
                return "KANSAS";

            case State.KY:
                return "KENTUCKY";

            case State.LA:
                return "LOUISIANA";

            case State.ME:
                return "MAINE";

            case State.MH:
                return "MARSHALL ISLANDS";

            case State.MD:
                return "MARYLAND";

            case State.MA:
                return "MASSACHUSETTS";

            case State.MI:
                return "MICHIGAN";

            case State.MN:
                return "MINNESOTA";

            case State.MS:
                return "MISSISSIPPI";

            case State.MO:
                return "MISSOURI";

            case State.MT:
                return "MONTANA";

            case State.NE:
                return "NEBRASKA";

            case State.NV:
                return "NEVADA";

            case State.NH:
                return "NEW HAMPSHIRE";

            case State.NJ:
                return "NEW JERSEY";

            case State.NM:
                return "NEW MEXICO";

            case State.NY:
                return "NEW YORK";

            case State.NC:
                return "NORTH CAROLINA";

            case State.ND:
                return "NORTH DAKOTA";

            case State.MP:
                return "NORTHERN MARIANA ISLANDS";

            case State.OH: 
                return "OHIO";

            case State.OK:
                return "OKLAHOMA";

            case State.OR:
                return "OREGON";

            case State.PW:
                return "PALAU";

            case State.PA:
                return "PENNSYLVANIA";

            case State.PR:
                return "PUERTO RICO";

            case State.RI:
                return "RHODE ISLAND";

            case State.SC:
                return "SOUTH CAROLINA";

            case State.SD:
                return "SOUTH DAKOTA";

            case State.TN:
                return "TENNESSEE";

            case State.TX:
                return "TEXAS";

            case State.UT:
                return "UTAH";

            case State.VT:
                return "VERMONT";

            case State.VI:
                return "VIRGIN ISLANDS";

            case State.VA:
                return "VIRGINIA";

            case State.WA:
                return "WASHINGTON";

            case State.WV:
                return "WEST VIRGINIA";

            case State.WI:
                return "WISCONSIN";

            case State.WY:
                return "WYOMING";
        }

        throw new Exception("Not Available");
    }
}


public State GetStateByName(string name)
        {
            switch (name.ToUpper())
            {
                case "ALABAMA":
                    return State.AL;

                case "ALASKA":
                    return State.AK;

                case "AMERICAN SAMOA":
                    return State.AS;

                case "ARIZONA":
                    return State.AZ;

                case "ARKANSAS":
                    return State.AR;

                case "CALIFORNIA":
                    return State.CA;

                case "COLORADO":
                    return State.CO;

                case "CONNECTICUT":
                    return State.CT;

                case "DELAWARE":
                    return State.DE;

                case "DISTRICT OF COLUMBIA":
                    return State.DC;

                case "FEDERATED STATES OF MICRONESIA":
                    return State.FM;

                case "FLORIDA":
                    return State.FL;

                case "GEORGIA":
                    return State.GA;

                case "GUAM":
                    return State.GU;

                case "HAWAII":
                    return State.HI;

                case "IDAHO":
                    return State.ID;

                case "ILLINOIS":
                    return State.IL;

                case "INDIANA":
                    return State.IN;

                case "IOWA":
                    return State.IA;

                case "KANSAS":
                    return State.KS;

                case "KENTUCKY":
                    return State.KY;

                case "LOUISIANA":
                    return State.LA;

                case "MAINE":
                    return State.ME;

                case "MARSHALL ISLANDS":
                    return State.MH;

                case "MARYLAND":
                    return State.MD;

                case "MASSACHUSETTS":
                    return State.MA;

                case "MICHIGAN":
                    return State.MI;

                case "MINNESOTA":
                    return State.MN;

                case "MISSISSIPPI":
                    return State.MS;

                case "MISSOURI":
                    return State.MO;

                case "MONTANA":
                    return State.MT;

                case "NEBRASKA":
                    return State.NE;

                case "NEVADA":
                    return State.NV;

                case "NEW HAMPSHIRE":
                    return State.NH;

                case "NEW JERSEY":
                    return State.NJ;

                case "NEW MEXICO":
                    return State.NM;

                case "NEW YORK":
                    return State.NY;

                case "NORTH CAROLINA":
                    return State.NC;

                case "NORTH DAKOTA":
                    return State.ND;

                case "NORTHERN MARIANA ISLANDS":
                    return State.MP;

                case "OHIO":
                    return State.OH;

                case "OKLAHOMA":
                    return State.OK;

                case "OREGON":
                    return State.OR;

                case "PALAU":
                    return State.PW;

                case "PENNSYLVANIA":
                    return State.PA;

                case "PUERTO RICO":
                    return State.PR;

                case "RHODE ISLAND":
                    return State.RI;

                case "SOUTH CAROLINA":
                    return State.SC;

                case "SOUTH DAKOTA":
                    return State.SD;

                case "TENNESSEE":
                    return State.TN;

                case "TEXAS":
                    return State.TX;

                case "UTAH":
                    return State.UT;

                case "VERMONT":
                    return State.VT;

                case "VIRGIN ISLANDS":
                    return State.VI;

                case "VIRGINIA":
                    return State.VA;

                case "WASHINGTON":
                    return State.WA;

                case "WEST VIRGINIA":
                    return State.WV;

                case "WISCONSIN":
                    return State.WI;

                case "WYOMING":
                    return State.WY;
            }

            throw new Exception("Not Available");
        }

public enum State
    {
        AL,
        AK,
        AS,
        AZ,
        AR,
        CA,
        CO,
        CT,
        DE,
        DC,
        FM,
        FL,
        GA,
        GU,
        HI,
        ID,
        IL,
        IN,
        IA,
        KS,
        KY,
        LA,
        ME,
        MH,
        MD,
        MA,
        MI,
        MN,
        MS,
        MO,
        MT,
        NE,
        NV,
        NH,
        NJ,
        NM,
        NY,
        NC,
        ND,
        MP,
        OH,
        OK,
        OR,
        PW,
        PA,
        PR,
        RI,
        SC,
        SD,
        TN,
        TX,
        UT,
        VT,
        VI,
        VA,
        WA,
        WV,
        WI,
        WY
    }

【讨论】:

  • 这不是 OP 要求的倒退吗?这将返回州名,而不是缩写。
  • @devlincarnate 它就在那里……只需向下滚动他的代码即可查看它
  • 节省了我一个小时的打字时间
【解决方案2】:

只需附上Homam 的答案。我有 switch 语句返回标准大小写的状态。

        switch (stateCode)
        {
            case "AL":
                return "Alabama";

            case "AK":
                return "Alaska";

            case "AS":
                return "American Samoa";

            case "AZ":
                return "Arizona";

            case "AR":
                return "Arkansas";

            case "CA":
                return "California";

            case "CO":
                return "Colorado";

            case "CT":
                return "Connecticut";

            case "DE":
                return "Delaware";

            case "DC":
                return "District Of Columbia";

            case "FM":
                return "Federated States Of Micronesia";

            case "FL":
                return "Florida";

            case "GA":
                return "Georgia";

            case "GU":
                return "Guam";

            case "HI":
                return "Hawaii";

            case "ID":
                return "Idaho";

            case "IL":
                return "Illinois";

            case "IN":
                return "Indiana";

            case "IA":
                return "Iowa";

            case "KS":
                return "Kansas";

            case "KY":
                return "Kentucky";

            case "LA":
                return "Louisiana";

            case "ME":
                return "Maine";

            case "MH":
                return "Marshall Islands";

            case "MD":
                return "Maryland";

            case "MA":
                return "Massachusetts";

            case "MI":
                return "Michigan";

            case "MN":
                return "Minnesota";

            case "MS":
                return "Mississippi";

            case "MO":
                return "Missouri";

            case "MT":
                return "Montana";

            case "NE":
                return "Nebraska";

            case "NV":
                return "Nevada";

            case "NH":
                return "New Hampshire";

            case "NJ":
                return "New Jersey";

            case "NM":
                return "New Mexico";

            case "NY":
                return "New York";

            case "NC":
                return "North Carolina";

            case "ND":
                return "North Dakota";

            case "MP":
                return "Northern Mariana Islands";

            case "OH":
                return "Ohio";

            case "OK":
                return "Oklahoma";

            case "OR":
                return "Oregon";

            case "PW":
                return "Palau";

            case "PA":
                return "Pennsylvania";

            case "PR":
                return "Puerto Rico";

            case "RI":
                return "Rhode Island";

            case "SC":
                return "South Carolina";

            case "SD":
                return "South Dakota";

            case "TN":
                return "Tennessee";

            case "TX":
                return "Texas";

            case "UT":
                return "Utah";

            case "VT":
                return "Vermont";

            case "VI":
                return "Virgin Islands";

            case "VA":
                return "Virginia";

            case "WA":
                return "Washington";

            case "WV":
                return "West Virginia";

            case "WI":
                return "Wisconsin";

            case "WY":
                return "Wyoming";
        }

【讨论】:

    【解决方案3】:

    再次添加到Homam's answer,我只需要文本翻译,所以我取出了枚举:

    public string GetStateByName(string name)
    {
        switch (name.ToUpper())
        {
            case "ALABAMA":
                return "AL";
    
            case "ALASKA":
                return "AK";
    
            case "AMERICAN SAMOA":
                return "AS";
    
            case "ARIZONA":
                return "AZ";
    
            case "ARKANSAS":
                return "AR";
    
            case "CALIFORNIA":
                return "CA";
    
            case "COLORADO":
                return "CO";
    
            case "CONNECTICUT":
                return "CT";
    
            case "DELAWARE":
                return "DE";
    
            case "DISTRICT OF COLUMBIA":
                return "DC";
    
            case "FEDERATED STATES OF MICRONESIA":
                return "FM";
    
            case "FLORIDA":
                return "FL";
    
            case "GEORGIA":
                return "GA";
    
            case "GUAM":
                return "GU";
    
            case "HAWAII":
                return "HI";
    
            case "IDAHO":
                return "ID";
    
            case "ILLINOIS":
                return "IL";
    
            case "INDIANA":
                return "IN";
    
            case "IOWA":
                return "IA";
    
            case "KANSAS":
                return "KS";
    
            case "KENTUCKY":
                return "KY";
    
            case "LOUISIANA":
                return "LA";
    
            case "MAINE":
                return "ME";
    
            case "MARSHALL ISLANDS":
                return "MH";
    
            case "MARYLAND":
                return "MD";
    
            case "MASSACHUSETTS":
                return "MA";
    
            case "MICHIGAN":
                return "MI";
    
            case "MINNESOTA":
                return "MN";
    
            case "MISSISSIPPI":
                return "MS";
    
            case "MISSOURI":
                return "MO";
    
            case "MONTANA":
                return "MT";
    
            case "NEBRASKA":
                return "NE";
    
            case "NEVADA":
                return "NV";
    
            case "NEW HAMPSHIRE":
                return "NH";
    
            case "NEW JERSEY":
                return "NJ";
    
            case "NEW MEXICO":
                return "NM";
    
            case "NEW YORK":
                return "NY";
    
            case "NORTH CAROLINA":
                return "NC";
    
            case "NORTH DAKOTA":
                return "ND";
    
            case "NORTHERN MARIANA ISLANDS":
                return "MP";
    
            case "OHIO":
                return "OH";
    
            case "OKLAHOMA":
                return "OK";
    
            case "OREGON":
                return "OR";
    
            case "PALAU":
                return "PW";
    
            case "PENNSYLVANIA":
                return "PA";
    
            case "PUERTO RICO":
                return "PR";
    
            case "RHODE ISLAND":
                return "RI";
    
            case "SOUTH CAROLINA":
                return "SC";
    
            case "SOUTH DAKOTA":
                return "SD";
    
            case "TENNESSEE":
                return "TN";
    
            case "TEXAS":
                return "TX";
    
            case "UTAH":
                return "UT";
    
            case "VERMONT":
                return "VT";
    
            case "VIRGIN ISLANDS":
                return "VI";
    
            case "VIRGINIA":
                return "VA";
    
            case "WASHINGTON":
                return "WA";
    
            case "WEST VIRGINIA":
                return "WV";
    
            case "WISCONSIN":
                return "WI";
    
            case "WYOMING":
                return "WY";
        }
    
        throw new Exception("Not Available");
    }
    

    【讨论】:

      【解决方案4】:

      您应该使用Dictionary<String, String>StringComparer.OrdinalIgnoreCase

      【讨论】:

      • 我从来没有用过字典,你能解释一下吗?
      • var d = new Dictionary{
      【解决方案5】:

      这里提供的解决方案没有错,但我想建议另一种选择,在我看来,它会更好一些。您可以定义以下 Enum 扩展方法,该方法使用反射和描述属性来获取完整的状态名称:

      namespace System
      {
          public static class EnumExtensions
          {
              public static string GetDescription(this Enum value)
              {
                  var fi = value.GetType().GetField(value.ToString());
                  var attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
                  return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
              }
          }
      }
      

      基本上,这将允许您执行以下操作:

      var stateName = State.AL.GetDescription();
      

      现在你只需要使用 Description 属性来装饰你的枚举器值:

      public enum State
      {
         [Description("Alabama")
         AL,
         [Description("Alaska")
         AK
      }
      

      并且扩展方法会给你状态的全名。如果未定义描述,它将为您提供枚举值名称,例如阿拉斯加,它将是 AK。

      这样您就拥有了一段代码,可以让您获取任何枚举器的描述性值,而不仅仅是状态。您需要做的就是定义需要更具描述性的 Enum 值的描述,其余的由扩展来完成。

      注意:扩展必须放置在 System 命名空间中,这样它才能开箱即用,而无需引用它的命名空间。

      【讨论】:

      • 我打算这样做。我已经使用这种方法几个月了。
      【解决方案6】:

      这是一个经过测试的 C# 函数,它采用美国州的缩写并返回完整的州名。它使用比开关更紧凑的字典方法。要回答您的问题,您只需交换键和值即可。

      https://heuristically.wordpress.com/2011/04/19/csharp-dictionary-us-state-abbreivation-names-using-sas/

      public string stateAbbreviationExpand(string abbr)
      {
          Dictionary<string, string> states = new Dictionary<string, string>();
      
          states.Add("AL", "Alabama");
          states.Add("AK", "Alaska");
          states.Add("AZ", "Arizona");
          states.Add("AR", "Arkansas");
          states.Add("CA", "California");
          states.Add("CO", "Colorado");
          states.Add("CT", "Connecticut");
          states.Add("DE", "Delaware");
          states.Add("DC", "District of Columbia");
          states.Add("FL", "Florida");
          states.Add("GA", "Georgia");
          states.Add("HI", "Hawaii");
          states.Add("ID", "Idaho");
          states.Add("IL", "Illinois");
          states.Add("IN", "Indiana");
          states.Add("IA", "Iowa");
          states.Add("KS", "Kansas");
          states.Add("KY", "Kentucky");
          states.Add("LA", "Louisiana");
          states.Add("ME", "Maine");
          states.Add("MD", "Maryland");
          states.Add("MA", "Massachusetts");
          states.Add("MI", "Michigan");
          states.Add("MN", "Minnesota");
          states.Add("MS", "Mississippi");
          states.Add("MO", "Missouri");
          states.Add("MT", "Montana");
          states.Add("NE", "Nebraska");
          states.Add("NV", "Nevada");
          states.Add("NH", "New Hampshire");
          states.Add("NJ", "New Jersey");
          states.Add("NM", "New Mexico");
          states.Add("NY", "New York");
          states.Add("NC", "North Carolina");
          states.Add("ND", "North Dakota");
          states.Add("OH", "Ohio");
          states.Add("OK", "Oklahoma");
          states.Add("OR", "Oregon");
          states.Add("PA", "Pennsylvania");
          states.Add("RI", "Rhode Island");
          states.Add("SC", "South Carolina");
          states.Add("SD", "South Dakota");
          states.Add("TN", "Tennessee");
          states.Add("TX", "Texas");
          states.Add("UT", "Utah");
          states.Add("VT", "Vermont");
          states.Add("VA", "Virginia");
          states.Add("WA", "Washington");
          states.Add("WV", "West Virginia");
          states.Add("WI", "Wisconsin");
          states.Add("WY", "Wyoming");
          if (states.ContainsKey(abbr))
              return (states[abbr]);
          /* error handler is to return an empty string rather than throwing an exception */
          return "";      
      }
      

      【讨论】:

      • 这里是使用字典的那个
      • 哎呀!该方法为每次查找重建字典。几乎没有效率。字典应该构建一次(或者如果出现更多状态,则根据需要构建),然后再进行多次查询。
      【解决方案7】:
      if statename.tolower == "new york" then 
        statename = "NY"
      else if
      

      所以如果你要走这条路,我会:

      1. 使用 switch 语句代替 if else switch(state.ToLower())。这将比 if then 语句更有效。编译器会优化switch语句。

      2. 如果你绝对必须使用 if then 语句。做

        字符串 lowerCaseState = state.ToLower().
        if(lowerCaseState == "new york"){....}else if...

      这样你就创建了一个小写字符串一次(字符串是不可变的)而不是 if then 语句的每个部分。

      事实上,我可能会使用带有静态方法的 switch 语句。

      1. 州名不会改变
      2. 州缩写不会改变。

      您可以创建一个对象来存储值以在程序每次运行时加载它们,但为什么呢?您不妨让编译器优化对不变静态值的访问。

      【讨论】:

        【解决方案8】:

        这在技术上是题外话,但我选择如果有人在省 2 字母代码之后,那么国家就是下一个。以下是获取 2 个字母的国家/地区代码的方法,首先是国家/地区名称:

            protected string GetCountryCode(string country)
            {
                var v1 = (from c in CultureInfo.GetCultures(CultureTypes.SpecificCultures)
                          where (new RegionInfo(c.LCID)).EnglishName != ""
                          || (new RegionInfo(c.LCID)).EnglishName != null
                          orderby (new RegionInfo(c.LCID)).EnglishName ascending
                          select new
                          {
                              Code = (new RegionInfo(c.LCID)).TwoLetterISORegionName,
                              Name = (new RegionInfo(c.LCID)).EnglishName
                          }).Distinct();
        
                string code = v1.Where(t => t.Name.ToLower() == country.ToLower()).FirstOrDefault().Code;
        
                if (!string.IsNullOrEmpty(code))
                    return code;
                else return "";
            }
        

        【讨论】:

          【解决方案9】:

          带有索引的状态名称字段的数据库(如果这是您最常搜索的字段,则为聚集索引)以便查找效率高并且查询返回状态缩写:

          select s.[StateAbbreviation]
          from [dbo].[State] s
          where s.[StateName] = @StateName;
          

          这样做的好处是可以在许多应用程序和环境中重复使用。

          【讨论】:

            【解决方案10】:

            如果你使用 .ini 文件,你可以用一行得到缩写 以下将为 MyAbrev 返回 FL

            MyAbrev = sGetINI(App.Path & "\" & "SSApp.ini", "States", "Florida","No State")
            

            您必须有 sGetINI 的 API 调用以及 .ini 文件中所有 50 个状态的以下列表

            [States]
            Alabama=AL
            Alaska=AK
            Arizona=AZ
            Arkansas=AR
            .
            .
            .
            Washington=WA
            West Virginia=WV
            Wisconsin=WI
            Wyoming=WY
            

            如果您想得到相反的结果,即States for Abbreviations,请将以下内容添加到列表中。

            AL=Alabama
            AK=Alaska
            AZ=Arizona
            AR=Arkansas
            .
            .
            .
            WA=Washington
            WV=West Virginia
            WI=Wisconsin
            WY=Wyoming
            

            【讨论】:

              【解决方案11】:

              这是我编写的一个类,用于将不同的样式转换为 ISO3166,也可以用于这种情况。如果遍历许多记录,我会使用一个初始化一次的字典,或者这可以适应这样做。

              using System;
              
              namespace Core.ISO
              {
                  internal class UsStateCode_Iso3166
                  {
                      private UsStateCode_Iso3166(string name,
                                                  string isoCode,
                                                  string alpha2)
                      {
                          Name = name;
                          IsoCode = isoCode;
                          Alpha2 = alpha2;
                      }
              
                      public string Name { get; }
                      public string IsoCode { get; }
                      public string Alpha2 { get; }
              
                      public static UsStateCode_Iso3166 Alabama { get { return new UsStateCode_Iso3166("Alabama", "US-AL", "AL"); } }
                      public static UsStateCode_Iso3166 Alaska { get { return new UsStateCode_Iso3166("Alaska", "US-AK", "AK"); } }
                      public static UsStateCode_Iso3166 AmericanSamoa { get { return new UsStateCode_Iso3166("American Samoa", "US-AS", "AS"); } }
                      public static UsStateCode_Iso3166 Arizona { get { return new UsStateCode_Iso3166("Arizona", "US-AZ", "AZ"); } }
                      public static UsStateCode_Iso3166 Arkansas { get { return new UsStateCode_Iso3166("Arkansas", "US-AR", "AR"); } }
                      public static UsStateCode_Iso3166 California { get { return new UsStateCode_Iso3166("California", "US-CA", "CA"); } }
                      public static UsStateCode_Iso3166 Colorado { get { return new UsStateCode_Iso3166("Colorado", "US-CO", "CO"); } }
                      public static UsStateCode_Iso3166 Connecticut { get { return new UsStateCode_Iso3166("Connecticut", "US-CT", "CT"); } }
                      public static UsStateCode_Iso3166 Delaware { get { return new UsStateCode_Iso3166("Delaware", "US-DE", "DE"); } }
                      public static UsStateCode_Iso3166 DistrictOfColumbia { get { return new UsStateCode_Iso3166("District Of Columbia", "US-DC", "DC"); } }
                      public static UsStateCode_Iso3166 Florida { get { return new UsStateCode_Iso3166("Florida", "US-FL", "FL"); } }
                      public static UsStateCode_Iso3166 Georgia { get { return new UsStateCode_Iso3166("Georgia", "US-GA", "GA"); } }
                      public static UsStateCode_Iso3166 Guam { get { return new UsStateCode_Iso3166("Guam", "US-GU", "GU"); } }
                      public static UsStateCode_Iso3166 Hawaii { get { return new UsStateCode_Iso3166("Hawaii", "US-HI", "HI"); } }
                      public static UsStateCode_Iso3166 Idaho { get { return new UsStateCode_Iso3166("Idaho", "US-ID", "ID"); } }
                      public static UsStateCode_Iso3166 Illinois { get { return new UsStateCode_Iso3166("Illinois", "US-IL", "IL"); } }
                      public static UsStateCode_Iso3166 Indiana { get { return new UsStateCode_Iso3166("Indiana", "US-IN", "IN"); } }
                      public static UsStateCode_Iso3166 Iowa { get { return new UsStateCode_Iso3166("Iowa", "US-IA", "IA"); } }
                      public static UsStateCode_Iso3166 Kansas { get { return new UsStateCode_Iso3166("Kansas", "US-KS", "KS"); } }
                      public static UsStateCode_Iso3166 Kentucky { get { return new UsStateCode_Iso3166("Kentucky", "US-KY", "KY"); } }
                      public static UsStateCode_Iso3166 Louisiana { get { return new UsStateCode_Iso3166("Louisiana", "US-LA", "LA"); } }
                      public static UsStateCode_Iso3166 Maine { get { return new UsStateCode_Iso3166("Maine", "US-ME", "ME"); } }
                      public static UsStateCode_Iso3166 Maryland { get { return new UsStateCode_Iso3166("Maryland", "US-MD", "MD"); } }
                      public static UsStateCode_Iso3166 Massachusetts { get { return new UsStateCode_Iso3166("Massachusetts", "US-MA", "MA"); } }
                      public static UsStateCode_Iso3166 Michigan { get { return new UsStateCode_Iso3166("Michigan", "US-MI", "MI"); } }
                      public static UsStateCode_Iso3166 Minnesota { get { return new UsStateCode_Iso3166("Minnesota", "US-MN", "MN"); } }
                      public static UsStateCode_Iso3166 Mississippi { get { return new UsStateCode_Iso3166("Mississippi", "US-MS", "MS"); } }
                      public static UsStateCode_Iso3166 Missouri { get { return new UsStateCode_Iso3166("Missouri", "US-MO", "MO"); } }
                      public static UsStateCode_Iso3166 Montana { get { return new UsStateCode_Iso3166("Montana", "US-MT", "MT"); } }
                      public static UsStateCode_Iso3166 Nebraska { get { return new UsStateCode_Iso3166("Nebraska", "US-NE", "NE"); } }
                      public static UsStateCode_Iso3166 Nevada { get { return new UsStateCode_Iso3166("Nevada", "US-NV", "NV"); } }
                      public static UsStateCode_Iso3166 NewHampshire { get { return new UsStateCode_Iso3166("New Hampshire", "US-NH", "NH"); } }
                      public static UsStateCode_Iso3166 NewJersey { get { return new UsStateCode_Iso3166("New Jersey", "US-NJ", "NJ"); } }
                      public static UsStateCode_Iso3166 NewMexico { get { return new UsStateCode_Iso3166("New Mexico", "US-NM", "NM"); } }
                      public static UsStateCode_Iso3166 NewYork { get { return new UsStateCode_Iso3166("New York", "US-NY", "NY"); } }
                      public static UsStateCode_Iso3166 NorthCarolina { get { return new UsStateCode_Iso3166("North Carolina", "US-NC", "NC"); } }
                      public static UsStateCode_Iso3166 NorthDakota { get { return new UsStateCode_Iso3166("North Dakota", "US-ND", "ND"); } }
                      public static UsStateCode_Iso3166 NorthernMarianaIslands { get { return new UsStateCode_Iso3166("Northern Mariana Islands", "US-MP", "MP"); } }
                      public static UsStateCode_Iso3166 Ohio { get { return new UsStateCode_Iso3166("Ohio", "US-OH", "OH"); } }
                      public static UsStateCode_Iso3166 Oklahoma { get { return new UsStateCode_Iso3166("Oklahoma", "US-OK", "OK"); } }
                      public static UsStateCode_Iso3166 Oregon { get { return new UsStateCode_Iso3166("Oregon", "US-OR", "OR"); } }
                      public static UsStateCode_Iso3166 Pennsylvania { get { return new UsStateCode_Iso3166("Pennsylvania", "US-PA", "PA"); } }
                      public static UsStateCode_Iso3166 PuertoRico { get { return new UsStateCode_Iso3166("Puerto Rico", "US-PR", "PR"); } }
                      public static UsStateCode_Iso3166 RhodeIsland { get { return new UsStateCode_Iso3166("Rhode Island", "US-RI", "RI"); } }
                      public static UsStateCode_Iso3166 SouthCarolina { get { return new UsStateCode_Iso3166("South Carolina", "US-SC", "SC"); } }
                      public static UsStateCode_Iso3166 SouthDakota { get { return new UsStateCode_Iso3166("South Dakota", "US-SD", "SD"); } }
                      public static UsStateCode_Iso3166 Tennessee { get { return new UsStateCode_Iso3166("Tennessee", "US-TN", "TN"); } }
                      public static UsStateCode_Iso3166 Texas { get { return new UsStateCode_Iso3166("Texas", "US-TX", "TX"); } }
                      public static UsStateCode_Iso3166 UnitedStatesMinorOutlyingIslands { get { return new UsStateCode_Iso3166("United States Minor Outlying Islands", "US-UM", "UM"); } }
                      public static UsStateCode_Iso3166 Utah { get { return new UsStateCode_Iso3166("Utah", "US-UT", "UT"); } }
                      public static UsStateCode_Iso3166 Vermont { get { return new UsStateCode_Iso3166("Vermont", "US-VT", "VT"); } }
                      public static UsStateCode_Iso3166 VirginIslands { get { return new UsStateCode_Iso3166("Virgin Islands", "US-VI", "VI"); } }
                      public static UsStateCode_Iso3166 Virginia { get { return new UsStateCode_Iso3166("Virginia", "US-VA", "VA"); } }
                      public static UsStateCode_Iso3166 Washington { get { return new UsStateCode_Iso3166("Washington", "US-WA", "WA"); } }
                      public static UsStateCode_Iso3166 WestVirginia { get { return new UsStateCode_Iso3166("West Virginia", "US-WV", "WV"); } }
                      public static UsStateCode_Iso3166 Wisconsin { get { return new UsStateCode_Iso3166("Wisconsin", "US-WI", "WI"); } }
                      public static UsStateCode_Iso3166 Wyoming { get { return new UsStateCode_Iso3166("Wyoming", "US-WY", "WY"); } }
                      public static UsStateCode_Iso3166 None { get { return new UsStateCode_Iso3166("N/A", "", ""); } }
              
                      public static UsStateCode_Iso3166 FromString(string str)
                      {
                          return str switch
                          {
                              "" => None,
                              "ALABAMA" => Alabama,
                              "ALASKA" => Alaska,
                              "AMERICAN SAMOA" => AmericanSamoa,
                              "ARIZONA" => Arizona,
                              "ARKANSAS" => Arkansas,
                              "CALIFORNIA" => California,
                              "COLORADO" => Colorado,
                              "CONNECTICUT" => Connecticut,
                              "DELAWARE" => Delaware,
                              "DISTRICT OF COLUMBIA" => DistrictOfColumbia,
                              "FLORIDA" => Florida,
                              "GEORGIA" => Georgia,
                              "GUAM" => Guam,
                              "HAWAII" => Hawaii,
                              "IDAHO" => Idaho,
                              "ILLINOIS" => Illinois,
                              "INDIANA" => Indiana,
                              "IOWA" => Iowa,
                              "KANSAS" => Kansas,
                              "KENTUCKY" => Kentucky,
                              "LOUISIANA" => Louisiana,
                              "MAINE" => Maine,
                              "MARYLAND" => Maryland,
                              "MASSACHUSETTS" => Massachusetts,
                              "MICHIGAN" => Michigan,
                              "MINNESOTA" => Minnesota,
                              "MISSISSIPPI" => Mississippi,
                              "MISSOURI" => Missouri,
                              "MONTANA" => Montana,
                              "NEBRASKA" => Nebraska,
                              "NEVADA" => Nevada,
                              "NEW HAMPSHIRE" => NewHampshire,
                              "NEW JERSEY" => NewJersey,
                              "NEW MEXICO" => NewMexico,
                              "NEW YORK" => NewYork,
                              "NORTH CAROLINA" => NorthCarolina,
                              "NORTH DAKOTA" => NorthDakota,
                              "NORTHERN MARIANA ISLANDS" => NorthernMarianaIslands,
                              "OHIO" => Ohio,
                              "OKLAHOMA" => Oklahoma,
                              "OREGON" => Oregon,
                              "PENNSYLVANIA" => Pennsylvania,
                              "PUERTO RICO" => PuertoRico,
                              "RHODE ISLAND" => RhodeIsland,
                              "SOUTH CAROLINA" => SouthCarolina,
                              "SOUTH DAKOTA" => SouthDakota,
                              "TENNESSEE" => Tennessee,
                              "TEXAS" => Texas,
                              "UNITED STATES MINOR OUTLYING ISLANDS" => UnitedStatesMinorOutlyingIslands,
                              "UTAH" => Utah,
                              "VERMONT" => Vermont,
                              "VIRGIN ISLANDS" => VirginIslands,
                              "VIRGINIA" => Virginia,
                              "WASHINGTON" => Washington,
                              "WEST VIRGINIA" => WestVirginia,
                              "WISCONSIN" => Wisconsin,
                              "WYOMING" => Wyoming,
                              "AL" => Alabama,
                              "AK" => Alaska,
                              "AS" => AmericanSamoa,
                              "AZ" => Arizona,
                              "AR" => Arkansas,
                              "CA" => California,
                              "CO" => Colorado,
                              "CT" => Connecticut,
                              "DE" => Delaware,
                              "DC" => DistrictOfColumbia,
                              "FL" => Florida,
                              "GA" => Georgia,
                              "GU" => Guam,
                              "HI" => Hawaii,
                              "ID" => Idaho,
                              "IL" => Illinois,
                              "IN" => Indiana,
                              "IA" => Iowa,
                              "KS" => Kansas,
                              "KY" => Kentucky,
                              "LA" => Louisiana,
                              "ME" => Maine,
                              "MD" => Maryland,
                              "MA" => Massachusetts,
                              "MI" => Michigan,
                              "MN" => Minnesota,
                              "MS" => Mississippi,
                              "MO" => Missouri,
                              "MT" => Montana,
                              "NE" => Nebraska,
                              "NV" => Nevada,
                              "NH" => NewHampshire,
                              "NJ" => NewJersey,
                              "NM" => NewMexico,
                              "NY" => NewYork,
                              "NC" => NorthCarolina,
                              "ND" => NorthDakota,
                              "MP" => NorthernMarianaIslands,
                              "OH" => Ohio,
                              "OK" => Oklahoma,
                              "OR" => Oregon,
                              "PA" => Pennsylvania,
                              "PR" => PuertoRico,
                              "RI" => RhodeIsland,
                              "SC" => SouthCarolina,
                              "SD" => SouthDakota,
                              "TN" => Tennessee,
                              "TX" => Texas,
                              "UM" => UnitedStatesMinorOutlyingIslands,
                              "UT" => Utah,
                              "VT" => Vermont,
                              "VI" => VirginIslands,
                              "VA" => Virginia,
                              "WA" => Washington,
                              "WV" => WestVirginia,
                              "WI" => Wisconsin,
                              "WY" => Wyoming,
                              "US-AL" => Alabama,
                              "US-AK" => Alaska,
                              "US-AS" => AmericanSamoa,
                              "US-AZ" => Arizona,
                              "US-AR" => Arkansas,
                              "US-CA" => California,
                              "US-CO" => Colorado,
                              "US-CT" => Connecticut,
                              "US-DE" => Delaware,
                              "US-DC" => DistrictOfColumbia,
                              "US-FL" => Florida,
                              "US-GA" => Georgia,
                              "US-GU" => Guam,
                              "US-HI" => Hawaii,
                              "US-ID" => Idaho,
                              "US-IL" => Illinois,
                              "US-IN" => Indiana,
                              "US-IA" => Iowa,
                              "US-KS" => Kansas,
                              "US-KY" => Kentucky,
                              "US-LA" => Louisiana,
                              "US-ME" => Maine,
                              "US-MD" => Maryland,
                              "US-MA" => Massachusetts,
                              "US-MI" => Michigan,
                              "US-MN" => Minnesota,
                              "US-MS" => Mississippi,
                              "US-MO" => Missouri,
                              "US-MT" => Montana,
                              "US-NE" => Nebraska,
                              "US-NV" => Nevada,
                              "US-NH" => NewHampshire,
                              "US-NJ" => NewJersey,
                              "US-NM" => NewMexico,
                              "US-NY" => NewYork,
                              "US-NC" => NorthCarolina,
                              "US-ND" => NorthDakota,
                              "US-MP" => NorthernMarianaIslands,
                              "US-OH" => Ohio,
                              "US-OK" => Oklahoma,
                              "US-OR" => Oregon,
                              "US-PA" => Pennsylvania,
                              "US-PR" => PuertoRico,
                              "US-RI" => RhodeIsland,
                              "US-SC" => SouthCarolina,
                              "US-SD" => SouthDakota,
                              "US-TN" => Tennessee,
                              "US-TX" => Texas,
                              "US-UM" => UnitedStatesMinorOutlyingIslands,
                              "US-UT" => Utah,
                              "US-VT" => Vermont,
                              "US-VI" => VirginIslands,
                              "US-VA" => Virginia,
                              "US-WA" => Washington,
                              "US-WV" => WestVirginia,
                              "US-WI" => Wisconsin,
                              "US-WY" => Wyoming,
                              _ => throw new ArgumentOutOfRangeException(nameof(str)),
                          };
                      }
                  }
              }
              

              可以像下面这样调用...

                  void test()
                  {
                      UsStateCode_Iso3166 stateByName = UsStateCode_Iso3166.FromString("New York");
                      UsStateCode_Iso3166 stateByAbbrev = UsStateCode_Iso3166.FromString("NY");
                      UsStateCode_Iso3166 stateByIso = UsStateCode_Iso3166.FromString("US-NY");
              
                      Console.WriteLine($"Name: {stateByAbbrev.Name}, Abbrev: {stateByAbbrev.Alpha2}, ISO3166: {stateByAbbrev.IsoCode}");
                      //output: Name: New York, Abbrev: NY, ISO3166: US-NY
                  }
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2022-01-04
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多