カードの新しいデッキがテキストボックスに表示されます

StackOverflow https://stackoverflow.com//questions/24004593

  •  20-12-2019
  •  | 
  •  

質問

  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)にあるカードの新しいデッキを表示しようとしていました。

出力は

 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では不変です。あなたがテキストボックスに追加したすべてのカードに新しい文字列を作成するので、基本的にそれらの中で "C2"から "C2 C3"から......

ループ内の文字列を操作するとすぐに、StringBuilderは行く方法です。

もう1つのチップは、あなたができる限り、あなたが他のカードを追加したいのなら、あなたの方法ではあなたの方法を使うことです。皇帝(今ちょうど私が発明された)、あなたはループ変数とあなたの配列を変更する必要があります。

ハッピーラーニング

environment.newlineは、あなたがいないエンドのための行末で、LFまたはCRLFに自動的に対処します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top