我正在加载一个XML文件,并将文档分解为Ienumerable,然后将每个元素放入winform上的标签中。 sofar我有以下代码,可以使用
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;
}
最终产品是Jeopardy Game Board,其中的类别和问题将从XML文件中提取
这是我需要执行此操作的5行中的第一行(5个列表分为5行)。我想知道是否有更好的方法来编码这个我最终没有25个语句为一个ElementAt()分配一个变量,然后25个赋值该变量。
答案 0 :(得分: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++;
});
}