C#中巧妙的5x5字母网格

Ale*_*der 3 html c# nested-loops

我必须在其中打印带有字母的5x5表,例如:

<table>
 <tr> <td>A</td> <td>B</td> <td>C</td> <td>D</td> <td>D</td>
Run Code Online (Sandbox Code Playgroud)

等等.这些字母实际上是一个链接,所以它们会像:

<td> <a href='/someplace'>A</a> </td>
Run Code Online (Sandbox Code Playgroud)

这些链接经常有变化的趋势,我不喜欢对它们进行硬编码并替换它们,因为它们会出现在很多页面中.所以我想我会编写一个函数来输出整个结构.

是的,它非常直接,让for循环表现得像:

  StringBuilder alphabets = new StringBuilder("<table class='table'>");
  for(int i=65; i<=87; i++)
  {
      //Do stuff here to calculate if i mod 5 is zero and add <tr> accordingly.
      //Use Convert.ToChar(i); to get the wanted structure.
  }
Run Code Online (Sandbox Code Playgroud)

然后它击中了我,我可以使用嵌套for循环以更好,"聪明"的方式做到这一点,

for(i=1; i<=5; i++)
{
    alpbahets.Append("<tr>")
    for(j=1; j<5; j++)
    {
        //Get the <a > link string here.
    }
    alphabets.Append("</tr");
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,我能做些什么来涉及ij他们进入的65-87的范围内? (AW,因为它是一个5x5网格,我将跳过最后一次迭代并手动添加YZ一个td).

我试过了(i*10 + j) + 54) (是的,我不知道我在想什么),但它不起作用.

这可能是一个非常愚蠢的问题,对不起,但是在嵌套for循环中完成此操作的方法是什么?或者还有其他更好的方法吗?我在问,因为我很想知道更多(而且我已经不知道了).

Øyv*_*hen 5

如何char letter = 'A';在循环中引入变量?

然后在使用它之后,调用letter++;移动到alphabeth中的下一个字母.

这将使您的程序更具可读性,并且不会强迫其他程序员看到一些计算,包括最终作为字母的i和j.

简单往往是最好的解决方案:)