我有几个不同类别(R,L,S)的几个列表:
List<R> someListR = ...;
List<L> someListL = ...;
List<S> someListS = ...;
每个类都有一个整数Id
字段,但它们都有唯一的ID。
我想将someList3
转换为Dictionary<string, S>
,密钥为:
R.Id + ":" + L.Id
修改
列表大小可能不同,在这种情况下我会创建一个键。
例如,List R具有:
R1.Id = 111;
R2.Id = 222;
R3.Id = 333;
和列表L:
L1.Id = 123;
L2.Id = 234;
L3.Id = 345;
L4.Id = 456;
我想创建一个键=&gt;价值字典是这样的:
111:123 => S1
222:234 => S2
333:345 => S3
答案 0 :(得分:3)
我仍然不确定我是否收到您的问题,但看起来您需要Zip
方法:
var result = listL.Zip(listR, (l,r) => new { l, r })
.Zip(listS, (x, s) => new { x.l, x.r, x.s })
.ToDictionary(x => x.l.ID + ":" + x.r.ID, x => x.s);