繁体   English   中英

使用LINQ GroupBy映射多个对象属性

[英]Map multiple object properties using LINQ GroupBy

我试图将一个对象映射到另一个对象,但是我想按一个键分组。 我已经设法创建了以下查询,但是我需要在对象以及键和值上填充更多属性。

      var results = list.GroupBy(
    c => c.PropertyKey,
    c => c.Value,
    (key, v) => new MyObject {PropertyKey = key, Values = v.ToList()}
  );

但是, MyObject还有另一个属性Color ,我也想从list填充。

我正在尝试做类似的事情:

      var results = list.GroupBy(
    c => c.PropertyKey,
    c => c.Color,
    c => c.Value,
    (key, v) => new MyObject {PropertyKey = key, Color = ???, Values = v.ToList()}
  );

有人可以推荐一种干净的方法吗?

您可以将它们指定为匿名对象

.GroupBy(c => new { c.PropertyKey, c.Color }, 
         c => c.Value,
        (key, v) => new MyObject { 
                        PropertyKey = key.PropertyKey, 
                        Color = key.Color, 
                        Values = v.ToList() });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM