我有以下
private enum Properties
{ one, two, three }
private Dictionary <Properties, String> PropertyToString;
private Dictionary <String, Properies> StringToProperty;
如何使用LINQ填充每个词典,以便我可以使用以下内容?是否有一行LINQ语句可以填充每个?
Properties MyResult = StringToProperty["One"];
String MySResult = PropertyToString[Properties.One];
我特别想在第二种情况下使用actaull属性进行索引。
答案 0 :(得分:3)
你可以这样做:
private Dictionary<Properties,String> PropertyToString = Enum
.GetValues(typeof(Properties))
.Cast<Properties>().
.ToDictionary(v => v, v => Enum.GetName(typeof(Properties), v));
private Dictionary<String,Properties> StringToProperty = Enum
.GetValues(typeof(Properties))
.Cast<Properties>().
.ToDictionary(v => Enum.GetName(typeof(Properties), v), v => v);
请注意,PropertyToString
字典是不必要的,因为您可以这样做:
String MySResult = Enum.GetName(typeof(Proeprties), Properties.One);