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

标签 c# html nested-loops

我必须打印一个 5x5 的表格,其中包含字母,例如:

<table>
 <tr> <td>A</td> <td>B</td> <td>C</td> <td>D</td> <td>D</td>

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

<td> <a href='/someplace'>A</a> </td>

这些链接往往会经常更改,我不喜欢对它们进行硬编码和替换,因为它们会出现在很多页面中。所以我想我会写一个函数来输出整个结构。

是的,它非常简单,让 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.
  }

然后它击中了我,我可以使用嵌套 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");
}

现在的问题是,我该怎么做才能将 ij 关联起来,使它们处于 65-87 的范围内? (A-W,因为它是一个 5x5 网格,我将跳过最后一次迭代并在一个 td 中手动添加 YZ)

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

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

最佳答案

在循环之外引入一个变量 char letter = 'A'; 怎么样?

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

这也会使您的程序更具可读性,并且不会强制其他程序员看到一些计算,包括以字母结尾的 i 和 j。

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

关于c# - C# 中巧妙的 5x5 字母网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956679/

相关文章:

javascript - GTM中样式改变时如何触发元素可见性

python - for 循环的下一个抽象级别?

c# - Windows Azure 结束连接并返回 324 错误代码

c# - RichTextBox SelectionStart 用换行符偏移

c# - 登录到 jira soap api

c# - C#中的字符串乘法

javascript - 动态添加的 javascript 不起作用,但静态代码可以正常工作?

php - MySql。单击 HTML 按钮后 - TRUNCATE 数据库表

java - struts2中迭代两个List

c++ - 在运行时定义循环