Linq distinct - Count

前端 未结 5 596
一向
一向 2020-11-29 01:16

I am looking to perform a query on an example list of objects

Date     Username

01/01/2011 james
01/01/2011 jamie
01/01/2011 alex
01/01/2011 james
02/01/201         


        
5条回答
  •  伪装坚强ぢ
    2020-11-29 02:04

    Something like this maybe?

    var list = new List(new[] {
            new MyClass { Date = DateTime.Parse("01/01/2011"), Username = "james" },
            new MyClass { Date = DateTime.Parse("01/01/2011"), Username = "james" },
            new MyClass { Date = DateTime.Parse("01/01/2011"), Username = "alex" },
            new MyClass { Date = DateTime.Parse("01/01/2011"), Username = "james" },
            new MyClass { Date = DateTime.Parse("02/01/2011"), Username = "matt" },
            new MyClass { Date = DateTime.Parse("02/01/2011"), Username = "jamie" },
            new MyClass { Date = DateTime.Parse("02/01/2011"), Username = "alex" },
            new MyClass { Date = DateTime.Parse("02/01/2011"), Username = "james" },
            new MyClass { Date = DateTime.Parse("02/01/2011"), Username = "james" },
            new MyClass { Date = DateTime.Parse("02/01/2011"), Username = "lucy" },
            new MyClass { Date = DateTime.Parse("02/01/2011"), Username = "alex" },
            new MyClass { Date = DateTime.Parse("03/01/2011"), Username = "james" },
            new MyClass { Date = DateTime.Parse("03/01/2011"), Username = "bob" },
            new MyClass { Date = DateTime.Parse("03/01/2011"), Username = "bob" },
            new MyClass { Date = DateTime.Parse("03/01/2011"), Username = "james" },
            new MyClass { Date = DateTime.Parse("03/01/2011"), Username = "james" },
            new MyClass { Date = DateTime.Parse("04/01/2011"), Username = "alex" },
            new MyClass { Date = DateTime.Parse("04/01/2011"), Username = "alex" },
            new MyClass { Date = DateTime.Parse("04/01/2011"), Username = "alex" }
        });
    
    list.GroupBy(l => l.Date, l => l.Username)
        .Select(g => new { 
                    Date = g.Key, 
                    Count = g.Distinct().Count() 
                });
    

提交回复
热议问题