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,那么理解程序代码的基本习惯和语法应该不会太难.类型系统相当不同,但基本控制流程非常相似.
C#字符串也可以像数组一样使用:
for (int i = 0; i < str.Length; i++)
//str[i] is a char
Run Code Online (Sandbox Code Playgroud)
迭代字符串中字符的最简单方法是使用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)