>我有几个不同类的列表(R,L,S):
List<R> someListR = ...;
List<L> someListL = ...;
List<S> someListS = ...;
每个类都有一个整数Id
字段,但它们都有唯一的 Id。
我想将someList3
转换为Dictionary<string, S>
,关键是:
R.Id + ":" + L.Id
编辑:
列表大小可以不同,在这种情况下,我会创建一个密钥。
例如,列表 R 具有:
R1.Id = 111;
R2.Id = 222;
R3.Id = 333;
和列表 L:
L1.Id = 123;
L2.Id = 234;
L3.Id = 345;
L4.Id = 456;
我想创建一个键=>值字典,如下所示:
111:123 => S1
222:234 => S2
333:345 => S3
我仍然不确定我是否理解您的问题,但看起来您需要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);