【发布时间】:2015-03-16 17:28:45
【问题描述】:
我有这样的课程:
class item
{
public int Id { get; set; }
public Dictionary<string, int> Data { get; set; }
}
我有 2 个列表包含这样的类对象:
item obj1 = new item();
obj1.Id = 1;
obj1.Data = new Dictionary<string, int>();
obj1.Data.Add("1", 11);
obj1.Data.Add("2", 12);
obj1.Data.Add("3", 13);
item obj2 = new item();
obj2.Id = 2;
obj2.Data = new Dictionary<string, int>();
obj2.Data.Add("1", 21);
obj2.Data.Add("2", 22);
obj2.Data.Add("3", 23);
item obj3 = new item();
obj3.Id = 3;
obj3.Data = new Dictionary<string, int>();
obj3.Data.Add("1", 31);
obj3.Data.Add("2", 32);
obj3.Data.Add("3", 33);
item obj4 = new item();
obj4.Id = 1;
obj4.Data = new Dictionary<string, int>();
obj4.Data.Add("1", 41);
obj4.Data.Add("2", 42);
obj4.Data.Add("3", 43);
item obj5 = new item();
obj5.Id = 2;
obj5.Data = new Dictionary<string, int>();
obj5.Data.Add("1", 51);
obj5.Data.Add("2", 52);
obj5.Data.Add("3", 53);
item obj6 = new item();
obj6.Id = 3;
obj6.Data = new Dictionary<string, int>();
obj6.Data.Add("1", 61);
obj6.Data.Add("2", 62);
obj6.Data.Add("3", 63);
List<item> lst1 = new List<item>();
lst1.Add(obj1);
lst1.Add(obj2);
lst1.Add(obj3);
List<item> lst2 = new List<item>();
lst2.Add(obj4);
lst2.Add(obj5);
lst2.Add(obj6);
现在我想根据对象的 id 和字典键添加字典的值。结果将是这样的:
List<item> result = new List<item>();
result[0].Id = 1
result[0].Data["1"] = 52 // obj1.Data[1] + obj4.Data[1]
result[0].Data["2"] = 54 // obj1.Data[2] + obj4.Data[2]
result[0].Data["3"] = 56 // obj1.Data[3] + obj4.Data[3]
result[1].Id = 2
result[1].Data["1"] = 72 // obj2.Data[1] + obj5.Data[1]
result[1].Data["2"] = 74 // obj2.Data[2] + obj5.Data[2]
result[1].Data["3"] = 76 // obj2.Data[3] + obj5.Data[3]
result[2].Id = 3
result[2].Data["1"] = 92 // obj3.Data[1] + obj6.Data[1]
result[2].Data["2"] = 94 // obj3.Data[2] + obj6.Data[2]
result[2].Data["3"] = 96 // obj3.Data[3] + obj6.Data[3]
获得此结果的最佳方法是什么?
谢谢
【问题讨论】:
-
你的结果肯定是错误的...提示:
[0]太多 -
我完全同意@DrKoch。例如,obj3.Data[1] + obj6.Data[1] 等于 92,而不是 56。
-
ups.. 是的,这是错误的.. 我的错:p。已更新。
标签: c# .net linq list dictionary