我有一些代码可以在C#中的linq中对我的集合进行排序。我希望它按houseName分组以对卷求和,对那个集合进行排序,还要将第三个参数pctVol传递给新排序的集合。我究竟做错了什么?我知道问题出在pctVol = group.Selecct(item => item.pctVol)行。
var inBetween = this.GroupBy(item => item.houseName)
.Select(group =>
new DataItem
{
houseName = group.Key,
VOLUME = group.Sum(item => item.VOLUME),
pctVol = group.Select(item => item.pctVol)
})
.ToList();
ObservableCollection<DataItem> objSort = new ObservableCollection<DataItem>(inBetween.OrderBy(DataItem =>
DataItem.VOLUME));
return objSort;
最佳答案
您希望pctVol具有什么样的价值?使用该代码,看起来DataItem.pctVol将是一个IEnumerable,其中包含该组中的所有pctVol值。
如果要使用单个值,并且保证每个组中的所有pctVol值都相同,则可以从第一个元素中获取值,如下所示:pctVol = group.First()。pctVol
关于c# - LINQ语法,用于选择要复制的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34819018/