嵌套对象列表中的字典键

时间:2019-12-25 07:07:26

标签: c# dictionary

我有一个对象列表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());

1 个答案:

答案 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);