У меня есть коллекция элементов KeyValuePair с DateTime в качестве ключа и строкой в качестве значения. В основном мои данные выглядят так:
12/07/2013 - 10220
12/07/2013 - 10220
12/07/2013 - 12220
12/07/2013 - 11240
12/07/2013 - 15220
13/07/2013 - 23220
13/07/2013 - 35620
14/07/2013 - 15620
14/07/2013 - 15620
Я хотел бы иметь список того, сколько предметов (отличных) у меня есть на каждый день. Таким образом, запрос приведет к:
12/07/2013 - 4
13/07/2013 - 2
14/07/2013 - 1
Ответ 2 · рейтинг 3 · Gun
Ниже приведено решение с полным примером
var list = new[]
{
new {Date = new DateTime(2013,07,12), value = 10220},
new {Date = new DateTime(2013,07,12), value = 10220},
new {Date = new DateTime(2013,07,12), value = 12220},
new {Date = new DateTime(2013,07,12), value = 11240},
new {Date = new DateTime(2013,07,12), value = 15220},
new {Date = new DateTime(2013,07,13), value = 23220},
new {Date = new DateTime(2013,07,13), value = 35620},
new {Date = new DateTime(2013,07,14), value = 15620},
new {Date = new DateTime(2013,07,14), value = 15620},
};
var res = from l in list group l by new { l.Date } into g select new { g.Key.Date, value = g.Distinct().Count() };
foreach (var item in res)
{
Console.WriteLine(item.Date + " " + item.value);
}