gpt4 book ai didi

c# - Enumerable.Range 动态拉回几个月

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:32 27 4
gpt4 key购买 nike

我正在编写 MVC 框架报告,我们试图将用户限制为两年的数据(从今天开始)。根据他们的要求,我们有一个月和一年的 dropDownList,用户应该只看到两年的数据。因此,目前,如果他们选择 2013 年,他们将只能看到 11 月和 12 月。

填充了 DDL 年份,现在我正在尝试根据所选年份填充月份列表。

这几个月来让我兴奋的是:

var months = Enumerable.Range(1, DateTime.Today.Month)
.Select(x => new SelectListItem { Text = x.ToString(), Value = x.ToString() });

return new SelectList(months.ToList(), "Value", "Text");

这些查询的新手,但感觉必须有一种方法可以在查询本身中执行此操作。

提前致谢!

最佳答案

不是很紧凑的代码,但可能对你有帮助

List<int> months = new List<int>();
int year = 2013; //selected year
var today = DateTime.Now;

if (year == today.Year)
months = Enumerable.Range(1, today.Month).ToList();
else if (year == today.Year - 1)
months = Enumerable.Range(1, 12).ToList();
else if (year == today.Year - 2)
months = Enumerable.Range(today.Month, 12 - (today.Month - 1)).ToList();

编辑

如果您需要月份名称列表

//using System.Globalization;
string[] monthNames = DateTimeFormatInfo.CurrentInfo.MonthNames; //all month names
List<string> ddMonths = monthNames.Where((m, idx) => months.Contains(idx + 1)).ToList();

关于c# - Enumerable.Range 动态拉回几个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33637978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com