使用带有非重复字符串列表的选择语句进行分组

本文关键字:语句 选择 列表 字符串 | 更新日期: 2023-09-27 18:34:09

使用我从静态列和分组列的分组依据中获得的结果。它给了我一个企业列表,但在投影时显示得非常奇怪。请问我该如何解决这个问题。

业务显示为System.Linq.Enumerable+<Distinctiterator> System String

var result = data.GroupBy(x => new { x.People, x.StreetAddress })
                  .Select(x => new 
                    {
                        People = x.Key.People,
                        Business = x.Select(z => z.Business).Distinct().ToList().ToString(),
                        StreetAddress x.Key.StreetAddress
                    });

使用带有非重复字符串列表的选择语句进行分组

显示的类型名称表明显示的内容仍然是Distinct()方法调用的结果。您发布的代码不会这样做;它将结果转换为列表,并会产生更像System.Collections.Generic.List'1(或类似的东西......我忘记了确切的表示形式,我认为它使用了反引号,但当然这是降价引号字符,所以我不能在这里准确显示它)。

您是否打算从列表中创建一个真正的字符串,也许通过使用 string.Join() 方法?

那看起来像这样:

result = data.GroupBy(x => new { x.People, x.StreetAddress })
              .Select(x => new 
                {
                    People = x.Key.People,
                    Business = string.Join(", ", x.Select(z => z.Business).Distinct()),
                    StreetAddress x.Key.StreetAddress
                });