心有法竹
有人在此处添加另一个答案(似乎已被删除,我正在尝试这种方法并使其也可以正常工作)。所有的功劳都归于那个匿名的人。 source.GroupBy(x => x.Name, y=> y.Value) .Select( result => new { Name = result.Name, Values = result.Select(r=> r.Value).ToList() } );字典解决方案似乎更直观,因为我可以看到为生成结果而发生的所有转换。编辑:在这上面花了太多时间,这里有另外两种方法可以实现这一点:-source.GroupBy(grpKey => grpKey.Name, elementSelector => elementSelector, (resultSelectorName, resultSelectorValues ) => new { Name = resultSelectorName, Values = resultSelectorValues.Select(v=>v.Value).ToList() });2)source.GroupBy(grpKey => grpKey.Name, elementSelector => elementSelector.Value, (resultSelectorName, resultSelectorValue ) => new { Name = resultSelectorName, Values = resultSelectorValue.ToList() });