简体   繁体   中英

How do I get a unique result from a list using LINQ

I have a problem with different values. I have problem

 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"));

And I am trying to use LINQ

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

To get a result like

Id Char Count
1 R 3
1 S 2
2 S 3
3 K 1

Can you help me?

Something like this?

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM