Hom*_*mam 77
我希望这有帮助
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
}
Run Code Online (Sandbox Code Playgroud)
ero*_*ebe 16
刚刚谈到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";
}
Run Code Online (Sandbox Code Playgroud)
Jef*_*ish 13
再次添加到Homam的答案,我只需要一个文本翻译,所以我拿出了枚举:
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");
}
Run Code Online (Sandbox Code Playgroud)
下面是一个经过测试的 C# 函数,它采用美国州缩写并返回完整的州名称。它使用比 switch 更紧凑的字典方法。要回答您的问题,您只需交换键和值即可。
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 "";
}
Run Code Online (Sandbox Code Playgroud)
这里提供的解决方案没有错,但我想建议另一个选项,在我看来,它有点好一点.您可以定义以下Enum扩展方法,该方法使用reflection和Description属性来获取完整的州名:
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
基本上这将允许您执行以下操作:
var stateName = State.AL.GetDescription();
Run Code Online (Sandbox Code Playgroud)
现在您只需要使用Description属性修饰枚举器值:
public enum State
{
[Description("Alabama")
AL,
[Description("Alaska")
AK
}
Run Code Online (Sandbox Code Playgroud)
扩展方法将为您提供状态的全名.如果未定义描述,它将为您提供Enum值名称,例如对于阿拉斯加,它将是AK.
这样,您只需一段代码即可为任何枚举器提取描述值,而不仅仅是状态.您需要做的就是定义Enum值的描述,这些值需要更具描述性,扩展将完成其余的工作.
注意:扩展必须放在System命名空间中,以便开箱即用,而不必引用它的命名空间.
if statename.tolower == "new york" then
statename = "NY"
else if
Run Code Online (Sandbox Code Playgroud)
所以如果你打算走这条路我会:
使用switch语句而不是 if else switch(state.ToLower())。这将比 if then 语句更有效。编译器会优化 switch 语句。
如果绝对必须使用 if then 语句。做
字符串 lowerCaseState = state.ToLower()。
if(lowerCaseState == "纽约"){....}否则如果...
这样,您就可以创建一个小写字符串一次(字符串是不可变的),而不是 if then 语句的每个部分。
事实上,我可能会使用带有静态方法的 switch 语句。
您可以创建一个对象来存储值,以便在每次程序运行时加载它们,但为什么呢?您不妨让编译器优化对不变静态值的访问。
| 归档时间: |
|
| 查看次数: |
18207 次 |
| 最近记录: |