C # коды для получения списка строк, таких как от А до Я? - PullRequest
3 голосов
/ 20 июля 2009

Как я могу получить список строк от "A:" до "Z:" в C #? Примерно так:

List<string> list = new List<string>();
for (int i = 0; i < 26; i++)
{
   list.Add(string.Format("{0}:", Convert.ToChar('A' + i));
}

Извините, у меня нет VS для проверки прямо сейчас. Кстати, есть ли на сайте доступный для интерактивного тестирования фрагмент кода?

Ответы [ 8 ]

13 голосов
/ 20 июля 2009
from ch in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" select ch + ":";
11 голосов
/ 20 июля 2009

Использование LINQ:

List<string> aToZ = Enumerable.Range('A', 26)
                              .Select(x => (char) x + ":")
                              .ToList();

Не используется LINQ - более простая альтернатива (IMO) оригинальному циклу for:

List<string> list = new List<string>();
for (char c = 'A'; c <= 'Z'; c++)
{
   list.Add(c + ":");
}
3 голосов
/ 20 июля 2009

Ну, не считая пропущенных ')' в конце строки list.Ad ...., все в порядке, хотя вы могли бы написать это, используя немного более короткую запись

list.Add((char)('A' + i) + ":");
2 голосов
/ 20 июля 2009

Редактировать: Вы должны были отметить меня за то, что я отвечаю, не читая. Это не работает в VS2005, о чем спрашивал ОП.

List<string> list = new List<string>(Enumerable.Range((int)'A', 26).Select(value => ((char)value).ToString() + ':'));
1 голос
/ 20 июля 2009

Как насчет:

var list = Enumerable.Range('a', 'z' - 'a' + 1).Select(charCode => (char)charCode)).ToList();
0 голосов
/ 20 июля 2009

Для тестирования фрагментов кода я использую LinqPad или Компилятор фрагментов . Я предпочитаю LinqPad, но оба очень хороши.

0 голосов
/ 20 июля 2009

Другой ответ; -)

List<string> list = new List<string>();
for (int i = 'A'; i <= 'Z'; i++)
{
    list.Add(string.Format("{0}:", Convert.ToChar(i)));
}
0 голосов
/ 20 июля 2009

Ваш работает нормально, за исключением отсутствия a). Я проверяю все мои сниппиты с LinqPad . (Я не знаю, как я когда-либо жил без него).

...