我有一個字符數組,打印A-Z如果我將其轉換爲字符串,但是當我嘗試從索引位置獲得一個字符時,我什麼也得不到? ..字符數組將不會在索引打印
char[] codes= new char[156];
for (int i = 65; i < 91; i++) codes[i] = (char)i;
Console.WriteLine(codes[2]);
我有一個字符數組,打印A-Z如果我將其轉換爲字符串,但是當我嘗試從索引位置獲得一個字符時,我什麼也得不到? ..字符數組將不會在索引打印
char[] codes= new char[156];
for (int i = 65; i < 91; i++) codes[i] = (char)i;
Console.WriteLine(codes[2]);
因爲你開始給char
的存儲索引65 ..
Console.WriteLine(codes[65]); // A
它做的事實,你創造了一個巨大的數組,但僅是一個填充它的一小部分並索引到一個不包含數據的部分。
你可以考慮使用各種簡化..
var chars = Enumerable.Range(65, 90).Select(c => (char)c).ToArray();
Console.WriteLine(chars[2]);
或者,您可以修改代碼以這一點。
char[] codes = new char[26];
for (int i = 0; i < 26; i++)
{
codes[i] = (char)i;
codes[i] += 'A';
}
Console.WriteLine(codes[2]);
你嘗試下面的代碼 Console.WriteLine(代碼[2]的ToString()); 原因是Console.WriteLine只能顯示字符串值。
這是不正確的。問題是op是從索引65填充數組,因此代碼[2]是空的。 –
我完全忽略了這一點:/謝謝 – ace007