在循环中更改变量名
本文关键字:改变 变量名 循环 | 更新日期: 2023-09-27 18:13:13
我的winform应用程序有一个选框工具,我从这里获得它
然后我可以添加文本元素通过使用下面的代码
MarqueControl.Entity.TextElement textElement1 =
new MarqueControl.Entity.TextElement("TextElement 1");
MarqueControl.Entity.TextElement textElement2 =
new MarqueControl.Entity.TextElement("TextElement 2");
MarqueControl.Entity.TextElement textElement3 =
new MarqueControl.Entity.TextElement("TextElement 3");
superMarquee1.Elements.AddRange(new MarqueControl.Entity.TextElement[]
{
textElement1,
textElement2,
textElement3
}
但问题是我必须从datatable中填充textelement,我是这样做的
for(int i=0;i<dt.Rows.Count ;i++){
String wholetext = dt.Rows[i][1].ToString() + "--" + dt.Rows[i][1].ToString();
// String textElement="textElement"+i.ToString();
TextElement element = new TextElement(wholetext);
MarqueControl.Entity.TextElement textElement1 =
new MarqueControl.Entity.TextElement("wholetext");
}
问题是每次相同的文本文本被更新。意味着只有当我可以为文本元素制作不同的标识符时,问题才会得到解决。有没有人建议如何改变循环内的变量名
// creation
var marqueeList = new List<MarqueControl.Entity.TextElement>();
for (int i = 1; i<=3; i++)
{
marqueeList.Add(new MarqueControl.Entity.TextElement("TextElement "+i));
}
// usage
for(int i=0;i<dt.Rows.Count ;i++)
{
String wholetext = [here is your retrieving code];
marqueeList[0] = new MarqueControl.Entity.TextElement(wholetext); // 0 = first item
// OR:
marqueeList[i] = new MarqueControl.Entity.TextElement(wholetext);
}
我不确定这是你想做的,但你能试试这个吗?
List<TextElement> list = new List<TextElement>();
for(int i = 0; i < dt.Rows.Count; i++)
{
String wholetext = dt.Rows[i][1].ToString() + "--" + dt.Rows[i][1].ToString();
list.Add(new TextElement(wholetext));
}
superMarquee1.Elements.AddRange(list.ToArray());