突然想到之前碰到的一个优化的面试题,现在想想switch用的太傻
1 public enum FormatType 2 { 3 GetKey, 4 GetValue 5 } 6 public class Format 7 { 8 private static string Get(Dictionary<string, string> dict, FormatType formatType, string code) 9 { 10 if (formatType == FormatType.GetKey) 11 return dict.FirstOrDefault(d => d.Value == code).Key; 12 else 13 return dict.FirstOrDefault(d => d.Key == code).Value; 14 } 15 public static string GetNation(FormatType formatType, string code) 16 { 17 Dictionary<string, string> dict = new Dictionary<string, string>{ 18 {"01","汉族"}, 19 {"02","藏族"}, 20 {"03","壮族"}, 21 {"04","朝鲜族"} 22 //这里省略其它...... 23 }; 24 return Get(dict, formatType, code); 25 } 26 }
使用:
获取"汉族"的编码
string key = Format.GetNation(FormatType.GetKey, "汉族");
获取"01"代表的民族
string value = Format.GetNation(FormatType.GetValue, "01");
--------------------------------------------------------------------------------------------