用英文几个月填充组合框

aba*_*hev 4 .net c# globalization datetime

我必须用英语填写一个月份的组合框:1月,2月等.我接下来做了:

private string[] AmericanMonths
{
  get
  {
    var arr = new string[12];
    var americanCulture = new CultureInfo("en-US");
    for (int i = 0; i < 12; i++)
    {
      arr[i] = new DateTime(2000, i + 1, 1).ToString("MMMM", americanCulture);
    }
    return arr;
  }
}

comboMonth.Items.AddRange(AmericanMonths);
Run Code Online (Sandbox Code Playgroud)

您如何看待,哪种方式更好(性能)?

有没有办法将表示月份数的整数转换为它的名称?

Jos*_*lio 18

CultureInfo已经在框架中包含月份名称列表.你可以写:

var americanCulture = new CultureInfo("en-US");
comboMonth.Items.AddRange(americanCulture.DateTimeFormat.MonthNames.Take(12)); //to remove last empty element
Run Code Online (Sandbox Code Playgroud)

  • +1也是更好的解决方案.我做了100000次原始和你的解决方案的迭代.00:02.59 - 原始解决方案00:02.03 - Jose Basilio的解决方案. (2认同)