2

私は以下を持っています

private enum Properties
{ one, two, three }

private Dictionary <Properties, String> PropertyToString;
private Dictionary <String, Properies> StringToProperty;

LINQを使用して各辞書にデータを入力し、次を使用できるようにするにはどうすればよいですか?それぞれに入力される1行のLINQステートメントはありますか?

Properties MyResult = StringToProperty["One"];
String MySResult = PropertyToString[Properties.One];

特に、2番目のケースではactaullプロパティを使用してインデックスを作成したいと思います。

4

1 に答える 1

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);
于 2013-03-25T00:25:03.480 に答える