2012-11-14 27 views
0

我有一個字符數組,打印A-Z如果我將其轉換爲字符串,但是當我嘗試從索引位置獲得一個字符時,我什麼也得不到? ..字符數組將不會在索引打印

char[] codes= new char[156]; 
    for (int i = 65; i < 91; i++) codes[i] = (char)i; 
    Console.WriteLine(codes[2]); 

回答

4

因爲你開始給char的存儲索引65 ..

Console.WriteLine(codes[65]); // A 
+0

我完全忽略了這一點:/謝謝 – ace007

0

它做的事實,你創造了一個巨大的數組,但僅是一個填充它的一小部分並索引到一個不包含數據的部分。

你可以考慮使用各種簡化..

var chars = Enumerable.Range(65, 90).Select(c => (char)c).ToArray(); 
Console.WriteLine(chars[2]); 
0

或者,您可以修改代碼以這一點。

char[] codes = new char[26]; 
for (int i = 0; i < 26; i++) 
{ 
    codes[i] = (char)i; 
    codes[i] += 'A'; 
} 

Console.WriteLine(codes[2]); 
-1

你嘗試下面的代碼 Console.WriteLine(代碼[2]的ToString()); 原因是Console.WriteLine只能顯示字符串值。

+0

這是不正確的。問題是op是從索引65填充數組,因此代碼[2]是空的。 –