using System;
using System.Collections.Generic;
using System.Linq;
namespace Teratail47399
{
class Program
{
class SampleTable
{
public long Id;
public string User;
public DateTime LoginDate;
}
static void Main(string[] args)
{
var list = new List<SampleTable>();
list.Add(new SampleTable()
{
Id = 0,
User = "user01",
LoginDate = DateTime.Parse("2016/08/09 13:00")
});
list.Add(new SampleTable()
{
Id = 1,
User = "user01",
LoginDate = DateTime.Parse("2016/09/09 13:00")
});
list.Add(new SampleTable()
{
Id = 2,
User = "user01",
LoginDate = DateTime.Parse("2016/09/10 13:00")
});
list.Add(new SampleTable()
{
Id = 3,
User = "user02",
LoginDate = DateTime.Parse("2016/09/10 13:00")
});
foreach (var data in list.Where(x => x.User == "user01").GroupBy(x => x.LoginDate.ToString("yyyy/MM")))
{
Console.WriteLine($"{data.Key} {data.Count()}回");
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpuYW1lc3BhY2UgVGVyYXRhaWw0NzM5OQp7CiAgICBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgY2xhc3MgU2FtcGxlVGFibGUKICAgICAgICB7CiAgICAgICAgICAgIHB1YmxpYyBsb25nIElkOwogICAgICAgICAgICBwdWJsaWMgc3RyaW5nIFVzZXI7CiAgICAgICAgICAgIHB1YmxpYyBEYXRlVGltZSBMb2dpbkRhdGU7CiAgICAgICAgfQoKICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICAgICAgewogICAgICAgICAgICB2YXIgbGlzdCA9IG5ldyBMaXN0PFNhbXBsZVRhYmxlPigpOwoKICAgICAgICAgICAgbGlzdC5BZGQobmV3IFNhbXBsZVRhYmxlKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWQgPSAwLAogICAgICAgICAgICAgICAgVXNlciA9ICJ1c2VyMDEiLAogICAgICAgICAgICAgICAgTG9naW5EYXRlID0gRGF0ZVRpbWUuUGFyc2UoIjIwMTYvMDgvMDkgMTM6MDAiKQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGxpc3QuQWRkKG5ldyBTYW1wbGVUYWJsZSgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElkID0gMSwKICAgICAgICAgICAgICAgIFVzZXIgPSAidXNlcjAxIiwKICAgICAgICAgICAgICAgIExvZ2luRGF0ZSA9IERhdGVUaW1lLlBhcnNlKCIyMDE2LzA5LzA5IDEzOjAwIikKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBsaXN0LkFkZChuZXcgU2FtcGxlVGFibGUoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZCA9IDIsCiAgICAgICAgICAgICAgICBVc2VyID0gInVzZXIwMSIsCiAgICAgICAgICAgICAgICBMb2dpbkRhdGUgPSBEYXRlVGltZS5QYXJzZSgiMjAxNi8wOS8xMCAxMzowMCIpCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgbGlzdC5BZGQobmV3IFNhbXBsZVRhYmxlKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWQgPSAzLAogICAgICAgICAgICAgICAgVXNlciA9ICJ1c2VyMDIiLAogICAgICAgICAgICAgICAgTG9naW5EYXRlID0gRGF0ZVRpbWUuUGFyc2UoIjIwMTYvMDkvMTAgMTM6MDAiKQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBkYXRhIGluIGxpc3QuV2hlcmUoeCA9PiB4LlVzZXIgPT0gInVzZXIwMSIpLkdyb3VwQnkoeCA9PiB4LkxvZ2luRGF0ZS5Ub1N0cmluZygieXl5eS9NTSIpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJ7ZGF0YS5LZXl9IHtkYXRhLkNvdW50KCl95ZueIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0=