我有一个对象列表lstItems(类型-项)
在此示例中具有嵌套对象列表Variants(Type Variant)
我需要创建一个字典,将Key作为嵌套对象上的SKU字段
示例:
项目对象类型
Title
Quantity
Variants ( List of Variant)
变量对象类型
SKU
picture
例如,变体上的数据
变体1
SKU:AAAA
图片:“ Blblb.jpg”
变体2
SKU:BBBB
图片:“ Blblbsd.jpg”
在一个美丽的世界中,我将能够执行此代码,并且该代码有效(下) 如何将所有SKU用作对象项的键
Dictionary<string, Product> identityMap1
= lstItems.ToDictionary(item => item.Variants.Select(y => y.SKU).ToList());
答案 0 :(得分:1)
看来,您正在寻找SelectMany
来扁平化内部列表:
var identityMap1 = lstItems
.SelectMany(item => item
.Variants
.Select(inner => new {
key = inner.SKU,
value = inner.Picture //TODO: Put the right value here: is it inner? item?
}))
.ToDictionary(item => item.key, item => item.value);