C#でアルファベットの文字を含む配列を生成する簡単な方法はありますか?手作業で行うことはそれほど難しくありませんが、これを行うための組み込みの方法があるかどうか疑問に思っていました。
C#でアルファベットの文字を含む配列を生成する簡単な方法はありますか?手作業で行うことはそれほど難しくありませんが、これを行うための組み込みの方法があるかどうか疑問に思っていました。
回答:
組み込みの方法はないと思いますが、最も簡単な方法だと思います
char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
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パラメータを受け入れる場合でも機能します;-)
String.Concat(Enumerable.Range('a', 'z' - 'a' + 1).Select(c => ((char)c).ToString().ToUpperInvariant()));
返すABCDEFGHIJKLMNOPQRSTUVWXYZ
;
Enumerable.Range('a', 26)
char[] alphabet = Enumerable.Range('A', 26).Select(x => (char)x).ToArray();
これは、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;
}
Convert.ToString
とString.valueOf
、それはJavaで動作します:)
あなたが英語のアルファベットの文字を意味すると仮定すると...
for ( int i = 0; i < 26; i++ )
{
Console.WriteLine( Convert.ToChar( i + 65 ) );
}
Console.WriteLine( "Press any key to continue." );
Console.ReadKey();
文字の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
}
(ここの表を参照してください。)文字のint値から文字値にキャストしているだけですが、これはASCII言語でのみ機能し、他の言語では機能しません。
編集:Mehrdadが同様のソリューションへのコメントで 提案したように、これを行うことをお勧めします:
alphabet[i] = (char)(i+(int)('A'));
これはA文字をそのint値にキャストし、これに基づいてインクリメントするため、ハードコードされていません。
char[] alphabet = new char[26];
?
驚いたことに、誰もイールドソリューションを提案していません。
public static IEnumerable<char> Alphabet()
{
for (char letter = 'A'; letter <= 'Z'; letter++)
{
yield return letter;
}
}
例:
foreach (var c in Alphabet())
{
Console.Write(c);
}
for
ループを書く奇妙な方法です。
yield return
パートを意味する場合、forループと実際には同等ではありません。無限のシリーズを遅延して返すために使用できるようなものです。
while
各ターンをインクリメントし、固定値で終了するカウンターを持っているという事実を意味します。それこそfor
が、交換用に設計されたものです。
char alphaStart = Char.Parse("A");
char alphaEnd = Char.Parse("Z");
for(char i = alphaStart; i <= alphaEnd; i++) {
string anchorLetter = i.ToString();
}
char alphaStart = 'A';
二重引用符の代わりに一重引用符を使用します。
//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++;
}
if
and while
ステートメント
コンソールで英語のアルファベットを取得する4つの方法:
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()}");
}
}