[英]list of months and years
我正在嘗試創建一個存檔,每個括號內每個月的項目數,並且我想出了類似以下內容:
@{
var startMonth = DateTime.Now.Month;
var startYear = DateTime.Now.Year;
var blogList = Model.BlogViewModel.BlogArchiveList;
var monthName = DateTime.Now.ToString("MMMM");
var Counter = 0;
}
@foreach (var item in blogList)
{
if (item.BlogDate.Year == startYear)
{
if (item.BlogDate.Month == startMonth)
{
Counter = Counter + 1;
}
else
{
Counter = 1;
startMonth = item.BlogDate.Month;
}
}
else
{
Counter = 1;
startYear = item.BlogDate.Year;
startMonth = item.BlogDate.Month;
}
monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(startMonth);
@Html.ActionLink(monthName + " " + startYear + "("+ Counter +")", "Archive", new
{
year=startYear, month=startMonth}) <br/>
}
盡管這似乎可行,但如果有多個條目,我將多次寫入該月份。
我如何避免多次寫一個月,同時仍然獲得該月的帖子數?
感謝您的幫助和時間
嘗試使用下一個代碼:
var statistics =
blogList.GroupBy(val => new {val.BlogDate.Month, val.BlogDate.Year})
.OrderBy(item => item.Key.Year)
.ThenBy(item => item.Key.Month)
.Select (grouped => new {Month = grouped.Key.Month, Year = grouped.Key.Year, Count = grouped.Count() });
foreach (var item in statistics)
{
var monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(item.Month);
Console.WriteLine (string.Format("{0} {1} ({2})", monthName, item.Year, item.Count));
}
打印正確的結果,例如
December 2012 (3)
January 2013 (4)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.