0

私は持っている

Dictionary<string,string> keyValList;

そのデータは次のようになります。

<"{1}" , "TEXT NUMBER 1">
<"{2}" , "TEXT NUMBER 2">
<"{3}" , "TEXT NUMBER 3">
<"{4}" , "TEXT NUMBER 4">
<"{5}" , "TEXT NUMBER 5">
<"{5}" , "TEXT NUMBER 6">

次のテキストを含むオブジェクトのリストがあります。

Item item1 = new Item();
item1.Tooltip = "{1}";
item1.Label= "{2}";
item1.Error= "{3}";

Item item2 = new Item();
item2.Tooltip = "{4}";
item2.Label= "{5}";
item2.Error= "{6}";

List<Item> items = new List<Item>();
items.Add(item1);
items.Add(item2);

items(!) を次のようにする最も賢い方法は何ですか?

   item1.Tooltip = "TEXT NUMBER 1";
   item1.Label= "TEXT NUMBER 2";
   item1.Error= "TEXT NUMBER 3";
   item2.Tooltip = "TEXT NUMBER 4";
   item2.Label= "TEXT NUMBER 5";
   item2.Error= "TEXT NUMBER 6";

これは単なる例であり、itemsとの方keyValListが大きいため、効率的な方法を検討しています。

ありがとう

4

2 に答える 2

1

もしかしてこういうこと?

items.ForEach(item => {
    int idx = items.IndexOf(item);
    item.Tooltip = keyValList["{" + (idx*3+1).ToString() + "}"],
    item.Label = keyValList["{" + (idx*3+2).ToString() + "}"],
    item.Error  = keyValList["{" + (idx*3+3).ToString() + "}"]
});
于 2012-05-07T08:15:42.860 に答える
1

なぜ linq でそれをしたいのですか?

foreach(Item item in items) {
  item.Tooltip = keyValList[item.Tooltip];
  item.Label = keyValList[item.Label];
  item.Error = keyValList[item.Error];
}
于 2012-05-07T08:21:15.983 に答える