我有一个BudgetHistory
类,在该类中我将Title
属性声明为public string Title
。标题设置为BudgetHistory
项目的月份和年份,因此如果您想查看2017年2月预算的历史记录,那么其名称是2017年2月。我正在尝试订购字符串这样几个月在迭代时按时间顺序出现。因此,当我在foreach
模型上执行BudgetHistory
循环时,列表应显示为1月,2月,3月等。我将如何进行此操作?
这就是我的foreach
循环现在的样子:
<ul class="treeview-menu">
@foreach (var item in (from w in Model group w by w.Title into n select n))
{
<li><a href="@Url.Action("Index", "BudgetHistories", new { Title = item.First().Title })"><i class="fa fa-dollar"></i> <span>@item.First().Title</span></a></li>
}
</ul>
我之所以设置它的方式是因为有许多具有相同标题的交易,我按标题对这些交易进行分组,只显示具有该标题的所有交易。
答案 0 :(得分:1)
GroupBy和Reverse不对您的数据进行排序,因为Title
已按数据排序,但您可以更改其顺序,然后尝试Group
和Reverse
检查其仍然排序
你可以试试这个
<ul class="treeview-menu">
@foreach (var item in (Model.OrderBy(x => DateTime.ParseExact(x.Title, "MMMM yyyy", CultureInfo.InvariantCulture) ).GroupBy(x=>x.Title)))
{
<li><a href="@Url.Action("Index", "BudgetHistories", new { Title = item.First().Title })"><i class="fa fa-dollar"></i> <span>@item.First().Title</span></a></li>
}
</ul>
上面的代码DateTime.ParseExact
中的将February 2017
转换为DateTime
格式,
此处MMMM yyyy
代表Title
的{{3}},因为您可以对日期时间进行排序,DateTime Format用于对assending order
答案 1 :(得分:0)
您可以添加将var newPassword = password.replacingOccurrences(of: "a", with: "A", options: NSString.CompareOptions.literal, range: nil)
转换为Title
然后按此值排序的属性。
此方法将来会很有用,例如获得一季度或一年的预算。
DateTime