我有一些代码可以在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/

10-12 12:43