首页 > 解决方案 > 对 ObervableCollection 进行分组并组合或连接 Values 检查 null 或空值并将它们按顺序排列

问题描述

我有一个 Observable 对象集合,需要组合在一起并将数量属性求和,但对象的其他一些属性也需要组合成一个新字符串,如果它们是唯一的,则用逗号或某种形式的分隔符分隔对于我的 sku 属性,它应该被分配第一个或不同的值。所以例如我的 observablecollection 有这样的数据..

在此处输入图像描述

所以结果集合应该是这样的...... 在此处输入图像描述

我想出了这个 linq 语句

var groupedList = scannedList.ScannedCollection
                .GroupBy(l => l.UPC)
                .Select(g => new
                {
                    UPC = g.First().UPC,
                    Sku = string.Join("|", g.GroupBy(sku => sku.Sku).Select(s => s.First().Sku)),
                    Location = string.Join(", ", g.GroupBy(loc => loc.Location).Select(k => k.First().Location)),
                    ReferenceCode = string.Join(", ", g.GroupBy(rc => rc.ReferenceCode).Select(r => r.First().ReferenceCode)),
                    Quantity = g.Sum(q => q.Quantity),
                });

但是,如果属性中有空值与分隔符分组,它们有 A、、B 或 skunumber2||skunumber,最终会发生什么

在此处输入图像描述

如何删除空格或空空格并将组合值按降序或升序排列?

标签: c#

解决方案


推荐阅读