0

ドキュメントを読み込んでIenumerableに分解し、各要素をWinFormのラベルに配置するXMLファイルがあります。ソファ私は次のコードを持っています、それはうまくいきます

public void PopulateGameBoard()
    {
         XDocument gameFiles = XDocument.Parse(Properties.Resources.Jeopardy);

         IEnumerable<string> categories =
             from category in gameFiles.Descendants("category")
             select (string)category.Attribute("name");


         string first = categories.ElementAt(0);
         cat1HeaderLabel.Text = first;
         string second = categories.ElementAt(1);
         cat2HeaderLabel.Text = second;
         string third = categories.ElementAt(2);
         cat3Label.Text = third;
         string fourth = categories.ElementAt(3);
         cat4Label.Text = fourth;
         string fifth = categories.ElementAt(4);
         cat5Label.Text = fifth;

    }

最終製品はJeopardyGameBoardで、カテゴリと質問はXMLファイルから取得されます。

これは、これを行う必要がある5行の最初の行です(5つのリストが5つの行になります)。ElementAt()にvariabelを割り当てる25のステートメントと、その変数の25の割り当てで終わらない、これをコーディングするためのより良い方法があるかどうか疑問に思っています。

4

1 に答える 1

0

ここでは、ラベルを動的に作成して値を割り当てようとしましたが、これは手書きのコードであるため、コンパイルして必要な変更を加えることを保証するものではありません

public void PopulateGameBoard()
{
     XDocument gameFiles = XDocument.Parse(Properties.Resources.Jeopardy);
     IEnumerable<string> categories =
         from category in gameFiles.Descendants("category")
         select (string)category.Attribute("name");
     Label[] cat1HeaderLabel= new Label[100];  
     int i = 0;
       categories.Each(p =>
       {
           cat1HeaderLabel[i] = new Label();
           cat1HeaderLabel[i].Text = p;
           this.Form.Controls.Add(cat1HeaderLabel[i]);
           i++;
       });
}
于 2012-12-06T07:39:58.167 に答える