private void GetNewDeck_Click(object sender, EventArgs e)
    {
       string[] suit = { "C", "D", "H", "S" };
        string[] num = { "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K", "A" };
        for (int j = 0; j < 4; j++)
        {
            for (int i = 0; i < 13; i++)
            {
               NewDecktextBox.Text + = (suit[j] , num[i]"\n");
            }
        }

    }
.

我试图在多行文本框(newdecktextbox)中显示一个新的卡片,当我点击betnewdeck_click按钮时,yewdecktextbox.text线的错误..

输出应

 C2 C3 C4 C5 C6 C7 C8 C9 C10 CJ CQ CK CA
 D2 D3 D4 D5 D6 D7 D8 D9 D10 DJ DQ DK DA
 H2 H3 H4 H5 H6 H7 H8 H9 H10 HJ HQ HK HA
 S2 S3 S4 S5 S6 S7 S8 S9 S10 SJ SQ SK SA
.

感谢

有帮助吗?

解决方案

这将是一个更好的

StringBuilder sb = new StringBuilder();
foreach (String suit in new string[] { "C", "D", "H", "S" })
{
  foreach (string value in new String[] { "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K", "A" } )
  {
    sb.Append(suit);
    sb.Append(value);
    sb.Append(" ");
  }
  sb.Append(Environment.NewLine);
}
NewDecktextBox.Text = sb.ToString()
.

字符串在.NET中是不可变的。您的方式将为您添加到文本框中的每张卡片构建一个新字符串,所以基本上为52个“C2”然后“C2 C3”然后....

一旦开始在循环中操纵一个字符串,StringBuilder就是前进的方式。

另一个提示是使用foreach如果可以,如果您想添加另一张牌,则可以使用。皇帝(刚才发明了),您必须更改循环变量和阵列。

乐趣学习。

环境.Newline是您所在环境的线路结束,使用LF或CRLF自动应对。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top