1

私の最後の質問に答えて貢献してくれたすべての人々に感謝します。私はLINQ質問の別の興味深い化身に遭遇しました...以前のように...

私は以下を持っています

const String A_CONVERSATION = "AD Channels";
const String NOT_REPUTABLE = "AD Resolution";
const String DO_NOT_KNOW = "Capture Input";

private enum Properties
{ MyHow, Thats, It }

List<String> MyList = new List<string> 
{ 
    A_CONVERSATION, 
    NOT_REPUTABLE, 
    DO_NOT_KNOW
}


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

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

Properties MyResult1 = StringToProperty[A_CONVERSATION];
String MySResult2 = PropertyToString[Properties.It];

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

4

1 に答える 1

0

これを提供することはあなたが望むものです...

2つのステートメントで(1つは何らかの方法でルックアップを介してマージできると思いますが、それほど関連性があるとは思いませんでした-すべてが1行にある必要はありません:)

var properties = ((Properties[])Enum.GetValues(typeof(Properties))).ToList();
var propertyToString = properties.Zip(MyList, (p, s) => new { Prop = p, Text = s }).ToDictionary(x => x.Prop, x => x.Text);
var stringToProperty = properties.Zip(MyList, (p, s) => new { Prop = p, Text = s }).ToDictionary(x => x.Text, x => x.Prop);

列挙型リストの作成は、わかりやすくするために意図的に分離しました。必要に応じて、1行に移動できます。

于 2013-03-27T01:35:07.707 に答える