Заполните комбинированный список английскими месяцами - PullRequest
4 голосов
/ 27 апреля 2009

Я должен заполнить комбинированный список месяцем на английском языке: январь, февраль и т. Д. Я сделал это следующим образом:

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);

Как вы думаете, какой путь лучше (производительность)?

Есть ли способ преобразовать целое число, представляющее номер месяца, в его имя?

Ответы [ 2 ]

18 голосов
/ 27 апреля 2009

CultureInfo уже содержит список названий месяцев прямо в структуре. Вы могли бы просто написать:

var americanCulture = new CultureInfo("en-US");
comboMonth.Items.AddRange(americanCulture.DateTimeFormat.MonthNames.Take(12)); //to remove last empty element
2 голосов
/ 27 апреля 2009

CultureInfo имеет DateTimeFormat свойство, которое содержит информацию о форматировании даты и времени. Оттуда вы можете использовать GetMonthName или GetAbbreviatedMonthName . Или же вы можете получить массив названий месяцев через свойство MonthNames объекта DateTimeFormatInfo.

...