问题描述
我的模型中有 IList<String>
类型的数据,以 yyyyMM
格式返回字符串日期,我需要帮助以 MM/yyyy
格式以单选按钮按降序排序显示数组元素。
我的模型如下所示:
public class DataToLoad
{
public List<string> Months{ get; set; }
}
foreach (var record in Model.Months)
{
<div class="radio col-12">
<div class="row">
<div class="col-5" style="">
@Html.RadioButton("Months",record,true,new { id = record,@class = "m-r" })<label>@record</label>
</div>
</div>
</div>
}
如果 Months
返回 199008 和 19909,我需要对值进行降序排序并格式化为 MM/yyyy 并使用单选按钮 09/1990 first then 08/1990
显示这些值。有什么帮助吗?
解决方法
您可以使用此代码:
foreach (var record in Model.Months.Select(x=>$"{x.Substring(4,2)}/{x.Substring(0,4)}").OrderByDescending(x=>x))
{
<div class="radio col-12">
<div class="row">
<div class="col-5" style="">
@Html.RadioButton("Months",record,true,new { id = record,@class = "m-r" })<label>@record</label>
</div>
</div>
</div>
}
,
与任何其他 C# 代码一样,使用 Linq:
@foreach (var record in Model.Months.OrderBy(x => x))
{
<div class="radio col-12">
<div class="row">
<div class="col-5" style="">
@Html.RadioButton("Months",@class = "m-r" })<label>@record</label>
</div>
</div>
</div>
}