我有这样的代码:
for (int i = 1; i < max; i++)
{
<div>@i</div>
<div>@test[i]</div>
}
我正在使用MVC3 razor语法,所以看起来有点奇怪。
我的最大值总是小于10,我希望有一个像“A”,“B”等的值出现在第一个而不是数字“1”,“2”..这是值我有没有一种简单的方法可以将我转换成一个字母,其中i = 1表示“A”,i = 2表示“B”。我需要在C#中执行此操作,我可以将其放在MVC3视图文件中。
Marife
答案 0 :(得分:3)
就个人而言,我可能会将索引器用于字符串:
// Wherever you want to declare this
// As many as you'll need - the "X" is to put A=1
const string Letters = "XABCDEFGHIJKLMNOP";
...
<div>
for (int i = 1; i < max; i++)
{
<div>@i</div>
<div>@Letters[i]</div>
}
我觉得比位移等更简单,更灵活,虽然这肯定也有用。
答案 1 :(得分:2)
(char)(i + 64)
将有效(65 ='A')
for (int i = 1; i < max; i++)
{
char c = (char)(i + 64); // c will be in [A..J]
...
}
答案 2 :(得分:0)
您可以将i
改为64(使用基于1的索引)并将int
转换为char
。
答案 3 :(得分:0)
如果你不需要在其他任何地方使用我,你可以这样做:
for (Char ch = 'A'; ch < 'K'; ch++)
{
MessageBox.Show(ch.ToString());
}
啊,刚刚意识到最后一个字母不是常数,所以你需要转换一个数字。