新的卡片组显示在文本框中

时间:2014-06-02 22:57:46

标签: playing-cards

  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");
            }
        }

    }

当我点击按钮GetNewDeck_Click按钮时,我试图在多行文本框(NewDecktextBox)中显示一副新牌。我遇到了NewDecktextbox.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

由于

1 个答案:

答案 0 :(得分:0)

这会好一点

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个&#34; C2&#34;那么&#34; C2 C3&#34;然后....

一旦开始在循环中操作字符串,就可以使用StringBuilder了。

另一个建议是使用foreach,如果可以的话,如果你想添加另一张卡片,例如Emperor(刚刚由我发明),您必须更改循环变量和数组。

快乐学习。

Environment.NewLine是您所在环境的行尾,自动处理LF或CRLF。