使用不同列表中的键将列表转换为字典



>我有几个不同类的列表(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);

最新更新