首页 > 解决方案 > 如何使用 LINQ 从列表中获取唯一结果

问题描述

我对不同的值有疑问。我有问题

 List<Program> programs = new List<Program>();
            programs.Add(new Program(1, "R"));
            programs.Add(new Program(1, "R"));
            programs.Add(new Program(1, "R"));
            programs.Add(new Program(1, "S"));
            programs.Add(new Program(1, "S"));
            programs.Add(new Program(2, "S"));
            programs.Add(new Program(2, "S"));
            programs.Add(new Program(2, "S"));
            programs.Add(new Program(3, "K"));

我正在尝试使用 LINQ

var query = programs.SelectMany(x => x.id)
                .GroupBy(s => s)
                .Select(g => new { Name = g.Key, Count = g.Count() }); 

得到类似的结果

ID 字符 数数
1 R 3
1 小号 2
2 小号 3
3 ķ 1

你能帮助我吗?

标签: c#

解决方案


像这样的东西?

var query = programs
                .GroupBy(x => new { x.Id, x.Char })
                .Select(g => new { g.Key.Id, g.Key.Char, Count = g.Count() }); 

推荐阅读