我有一个包含date
列的表。
我想使用 LINQ 查询并计算每个月发生的次数并像month, occurrence of month in the table
一样显示它
1=2(1 is month, 2 is number of occurrence),2=5,3=12
等使用 asp.net。
有人可以告诉我该怎么做。
提前谢谢。
这个怎么样?
var dates = Enumerable.Range(1, 5).Select(i=>new DateTime(2015,i%3+1,1));
var grouped = dates.GroupBy(d => d.Month).Select(g => string.Format("{0}={1}", g.Key, g.Count()));
// Now grouped will have your desired data (list of occurrences)
我在这里使用了假日期。您需要改为从数据库中Select
日期列。
如果要使用 lambda 而不是 long linq,可以执行以下操作。尽管您需要将数字月份转换为文本。
var somedates = new List<DateTime>() {
DateTime.Now,
DateTime.Now.AddDays(10),
DateTime.Now.AddMonths(1),
DateTime.Now.AddMonths(1).AddDays(5)};
var months = somedates.GroupBy(x => x.Month).Select(g => new {Name = g.Key, Count = g.Count()});