如何列出所有拉丁(英文字母)字符?

本文关键字:英文字母 字符 何列出 | 更新日期: 2023-09-27 18:17:31

我正在寻找一种有效的方法来获得所有英文(拉丁)字符的列表。

A, B, C, .... , Z

我真的不想要这样的构造函数:

// nasty way to create list of English alphabet
List<string> list = new List<string>();
list.Add("A");
list.Add("B");
....
list.Add("Z");
// use the list
...

如果你对如何使用它感到好奇,我正在创建一个bin-tree机制。

如何列出所有拉丁(英文字母)字符?

您可以使用for循环:

List<char> list = new List<char>();
for (char c = 'A'; c <= 'Z'; ++c) {
    list.Add(c);
}

如果您想要List<string>而不是List<char>,请使用list.Add(c.ToString());

请注意,这仅仅是因为字母A - Z在Unicode中以连续序列出现(代码点65到90)。同样的方法不一定适用于其他字母。

此处:

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

这个字符串是一个字符列表。

使用ToCharArray或LINQ ToList来转换为您选择的枚举,尽管您已经可以通过字符串的Chars索引器访问每个项。

使用LINQ

int charactersCount = 'Z' - 'A' + 1;
IList<char> all = Enumerable.Range('A', charactersCount)
                            .Union(Enumerable.Range('a', charactersCount))
                            .Select(i => (char)i)
                            .ToList();

没有内置的方法来获取对应于每个字符的字符串列表。您可以使用以下代码获得IEnumerable,这可能符合您的目的。你也可以只使用from部分中的数组。

var letters = from letter in "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()
              select letter.ToString();

这是我的解决方案(最终)

const string driveLetters = "DEFGHIJKLMNOPQRSTUVWXYZ";
List<string> allDrives = new List<string>(driveLetters.Length);
allDrives = (from letter
        in driveLetters.ToCharArray()
        select letter).ToList();

我最终采用了这个解决方案,因为最初我的目标是创建一个windows中所有可用驱动器的列表。这是实际代码:

const string driveLetters = "DEFGHIJKLMNOPQRSTUVWXYZ";
const string driveNameTrails = @":'";
List<string> allDrives = (from letter
            in driveLetters.ToCharArray()
            select letter + driveNameTrails).ToList();
return allDrives;

最简单的方法-

  int start = (int) 'A';
  int end = (int) 'Z';
  List<char> letters = new List<char>();
  for (int i = start; i <= end; i++)
  {
    letters.Add((char)i);  
  }

方法相同,但代码更少-

IEnumerable<char> linqLetters = Enumerable.Range(start, end - start + 1).Select(t => (char)t);

生成字符串并转换为数组

string str = "abcdefghijklmnopqrstuvwxyz"; //create characters
char[] arr;  //create array
arr = str.ToCharArray(0, 26); //You can change the number to adjust this list

获取数组

中的值
char getchar = arr[17];//get "r"