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 回答