如何列出所有拉丁(英文字母)字符?
本文关键字:英文字母 字符 何列出 | 更新日期: 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"