从分组的 LINQ 语句返回值的对象

本文关键字:返回值 对象 语句 LINQ | 更新日期: 2023-09-27 18:33:28

我已经成功地从分组的LINQ语句中获得了我想要的输出,但我想知道是否有更优雅的方法。

目前,我每个组中有两个元素,我正在使用下面的代码返回具有fieldA, fieldB值的对象列表:

infoList.GroupBy(s => s.Name.Substring(0, s.Name.LastIndexOf("whatever")) + 1)
         .Select(grp => new { 
                              fieldA = grp.ElementAt(0).Value, 
                              fieldB = grp.ElementAt(1).Value 
                         }
          );

谁能帮忙?

从分组的 LINQ 语句返回值的对象

它应该是

infoList.GroupBy(s => s.Name.Substring(0, s.Name.LastIndexOf("whatever"),
                (key, g) => new { fieldKey= key,fieldValues = g.ToList() });

这是因为组并不总是有 2 个元素。最好将它们存储为列表