有没有一种简单的方法来生成包含C#中字母表字母的数组?手动完成它并不难,但我想知道是否有内置的方法来做到这一点。
答案 0 :(得分:181)
我不认为有内置方式,但我认为最简单的是
char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
答案 1 :(得分:95)
C#3.0:
char[] az = Enumerable.Range('a', 'z' - 'a' + 1).Select(i => (Char)i).ToArray();
foreach (var c in az)
{
Console.WriteLine(c);
}
是的,即使Enumerable.Range的唯一重载接受int参数,它也能正常工作; - )
答案 2 :(得分:45)
for (char letter = 'A'; letter <= 'Z'; letter++)
{
Debug.WriteLine(letter);
}
答案 3 :(得分:30)
char[] alphabet = Enumerable.Range('A', 26).Select(x => (char)x).ToArray();
答案 4 :(得分:19)
我写这个是为了获得基于1的MS excel列代码(A,B,C,...,Z,AA,AB,...,ZZ,AAA,AAB,...)指数。 (当然,切换到从零开始只是在开始时忽略column--;
。)
public static String getColumnNameFromIndex(int column)
{
column--;
String col = Convert.ToString((char)('A' + (column % 26)));
while (column >= 26)
{
column = (column / 26) -1;
col = Convert.ToString((char)('A' + (column % 26))) + col;
}
return col;
}
答案 5 :(得分:13)
假设你的意思是英文字母......
for ( int i = 0; i < 26; i++ )
{
Console.WriteLine( Convert.ToChar( i + 65 ) );
}
Console.WriteLine( "Press any key to continue." );
Console.ReadKey();
答案 6 :(得分:6)
您可以根据字符的ascii值执行类似的操作:
char[26] alphabet;
for(int i = 0; i <26; i++)
{
alphabet[i] = (char)(i+65); //65 is the offset for capital A in the ascaii table
}
(参见表here。)您只是将字符的int值转换为字符值 - 但是,这只适用于不同语言的ascii字符等。
修改强> 正如Mehrdad在对类似解决方案的评论中所建议的那样,最好这样做:
alphabet[i] = (char)(i+(int)('A'));
这会将A字符转换为它的int值,然后根据此值递增,因此它不是硬编码的。
答案 7 :(得分:5)
另请注意,字符串有一个operator [],它返回一个Char,并且是IEnumerable<char>
,因此对于大多数用途,您可以使用字符串作为char []。因此:
string alpha = "ABCDEFGHIJKLMNOPQRSTUVQXYZ";
for (int i =0; i < 26; ++i)
{
Console.WriteLine(alpha[i]);
}
foreach(char c in alpha)
{
Console.WriteLine(c);
}
答案 8 :(得分:2)
感到惊讶的是没有人提出屈服解决方案:
public static IEnumerable<char> Alphabet()
{
for (char letter = 'A'; letter <= 'Z'; letter++)
{
yield return letter;
}
}
示例:
foreach (var c in Alphabet())
{
Console.Write(c);
}
答案 9 :(得分:2)
var alphabets = Enumerable.Range('A', 26).Select((num) => ((char)num).ToString()).ToList();
答案 10 :(得分:0)
char alphaStart = Char.Parse("A");
char alphaEnd = Char.Parse("Z");
for(char i = alphaStart; i <= alphaEnd; i++) {
string anchorLetter = i.ToString();
}
答案 11 :(得分:0)
//generate a list of alphabet using csharp
//this recurcive function will return you
//a string with position of passed int
//say if pass 0 will return A ,1-B,2-C,.....,26-AA,27-AB,....,701-ZZ,702-AAA,703-AAB,...
static string CharacterIncrement(int colCount)
{
int TempCount = 0;
string returnCharCount = string.Empty;
if (colCount <= 25)
{
TempCount = colCount;
char CharCount = Convert.ToChar((Convert.ToInt32('A') + TempCount));
returnCharCount += CharCount;
return returnCharCount;
}
else
{
var rev = 0;
while (colCount >= 26)
{
colCount = colCount - 26;
rev++;
}
returnCharCount += CharacterIncrement(rev-1);
returnCharCount += CharacterIncrement(colCount);
return returnCharCount;
}
}
//--------this loop call this function---------//
int i = 0;
while (i <>
{
string CharCount = string.Empty;
CharCount = CharacterIncrement(i);
i++;
}
答案 12 :(得分:0)
四种在控制台中获取英文字母的方法:
public void ShowEnglishAlphabet()
{
var firstLetter = 'a';
var endLetter = 'z';
for (var letter = firstLetter; letter <= endLetter; letter++)
{
Console.WriteLine($"{letter}-{letter.ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetFromUnicodeTableDecNumber()
{
var firstLetter = 97;
var endLetter = 122;
for (var letterNumberUnicodeTable = firstLetter;
letterNumberUnicodeTable <= endLetter; letterNumberUnicodeTable++)
{
Console.WriteLine($"{(char)letterNumberUnicodeTable}-
{((char)letterNumberUnicodeTable).ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetUnicodeTableEscapeSequence()
{
var firstLetter = '\u0061';
var endLetter = '\u007A';
for (var letterNumberUnicodeTable = firstLetter;
letterNumberUnicodeTable <= endLetter; letterNumberUnicodeTable++)
{
Console.WriteLine($"{letterNumberUnicodeTable}-
{letterNumberUnicodeTable.ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetUnicodeTableLinq()
{
var alphabets = Enumerable.Range('a', 26).Select(letter =>
((char)letter).ToString()).ToList();
foreach (var letter in alphabets)
{
Console.WriteLine($"{letter}-{letter.ToUpper()}");
}
}
答案 13 :(得分:0)
不幸的是,没有现成的方法。
您可以使用; char []个字符=“ ABCDEFGHIJKLMNOPQRSTUVWXYZ” .ToCharArray();