使用for循环使用C#迭代数组

use*_*242 0 c# arrays for-loop

我正在尝试使用C#迭代数组.

该数组由字母表中的字母组成.

我在视图中内联,我知道这不是理想的.但是,对于每个字母,我需要将HTML写入文档.

基本上我需要做以下JS - 只是不知道C#语法:

var myArray = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //I think ToCharArray();
for (var i=0, i < myArray.length, i++)
{
    if (somecondition)
    {
        write some html;
    } 
   else
   {
        write some other html;
    }
}
Run Code Online (Sandbox Code Playgroud)

目前在用户控件中有26个版本.我是一名前端开发人员,这是由后端传递给我的.只是为了维护性而试图找到一种更有效的方法.

<% if (Convert.ToInt32(Model.State.Cities.GetCityCountByAlphabet("A")) == 0) { %>
<span class="no-link">A</span>
<% } else { %>
<a href="#to-A">A</a>
<% } %>
Run Code Online (Sandbox Code Playgroud)

Eri*_*ert 13

其他答案是合理的,但我个人倾向于简单地写

foreach(char c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
{ ... }
Run Code Online (Sandbox Code Playgroud)

并跳过索引器,局部变量,等等等等.

更一般地说:如果你每次不知道C#的语法时你的问题解决技术将要在StackOverflow上提问,那么你的工作效率就不会很高.为什么不学习基本的C#?如果你已经理解了JavaScript,那么理解程序代码的基本习惯和语法应该不会太难.类型系统相当不同,但基本控制流程非常相似.


SLa*_*aks 5

C#字符串也可以像数组一样使用:

for (int i = 0; i < str.Length; i++) 
    //str[i] is a char
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 5

迭代字符串中字符的最简单方法是使用foreach:

foreach (char c in yourString)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

这也适用于数组.

如果你只是想迭代字母A到Z,你甚至不需要存储包含所有字母的字符串.你可以改用它:

for (char c = 'A'; c <= 'Z'; c++)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)