我已成功从分组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
}
);
任何人都可以帮忙吗?
答案 0 :(得分:1)
应该是
infoList.GroupBy(s => s.Name.Substring(0, s.Name.LastIndexOf("whatever"),
(key, g) => new { fieldKey= key,fieldValues = g.ToList() });
这是因为群组并不总是有2个元素。最好将它们存储为列表