Мне нужно написать функцию, которая возвращает следующий 10-летний список избранных. На данный момент я жестко кодирую и продолжаю работать над тем, как это сделать. Как написать функцию, которая может вернуть любой период, который я хочу, например, следующие 20 лет
//View
@Html.DropDownListFor(model => model.CardExpiryYear, vmConstants.listExpiryYears)
//Partial Class
public static partial class vmConstants
{
public static SelectList listExpiryYears = new SelectList(new[]
{
new{ Name ="" , ID = ""},
new{ Name ="2014" , ID = "2014"},
new{ Name ="2015" , ID = "2015"},
new{ Name ="2016" , ID = "2016"},
new{ Name ="2017" , ID = "2017"},
new{ Name ="2018" , ID = "2018"},
new{ Name ="2019" , ID = "2019"},
new{ Name ="2020" , ID = "2020"},
new{ Name ="2021" , ID = "2021"},
new{ Name ="2022" , ID = "2022"},
new{ Name ="2023" , ID = "2023"},
new{ Name ="2024" , ID = "2024"},
new{ Name ="2025" , ID = "2025"},
new{ Name ="2026" , ID = "2026"},
},
"ID", "Name", 1);
}
Вы должны иметь возможность использовать Enumerable.Range
и DateTime.Now.Year
. Что-то вроде этого должно заставить вас начать.
var years = Enumerable.Range(DateTime.Now.Year, 10);
var select = new SelectList(years.Select(y => new SelectListItem()
{
Text = y.ToString(), Value = y.ToString()
}));