使用带有不同字符串列表的select语句进行分组

时间:2014-12-12 21:19:24

标签: c# wpf linq mvvm

使用Group by with static columns and grouped columns的结果。它给了我一个企业列表,但在投影时显示非常奇怪。我可以问一下我是怎么回事的。

商家显示为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
                    });

1 个答案:

答案 0 :(得分:1)

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

您是否意味着要使用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
                });