我正在编写一个 C#/ASP.Net web 应用程序,我有大量的文本框需要在后面的代码中设置为变量值。目前我正在做以下事情:
AspTextBox0.Text = codeBehindVariable[0];
AspTextBox1.Text = codeBehindVariable[1];
AspTextBox2.Text = codeBehindVariable[2];
AspTextBox3.Text = codeBehindVariable[3];
…
有没有一种简单的方法可以在简单的“for”循环中做到这一点?
这是一个非常简化的例子,真实的程序有一个switch case和一些其他的测试需要在变量赋值的时候执行。因此,“for”循环将大大简化代码的编写和可维护性。回到 VB6 和控制数组的美好时光,这是小菜一碟。
最佳答案
VB6 的美好时光早已一去不复返了,最好不要再回来了。
创建一个控件数组或更好的 List<TextBox>
你自己:
var textBoxes = new List<TextBox> {
AspTextBox0,
AspTextBox1,
// ...
};
然后 Zip 它与 codeBehindVariable
:
textBoxes.Zip(codeBehindVariable,
(textBox, variable) => textBox.Text = variable);
或者,如果您更喜欢 for
循环:
for ( int i = 0; i < codeBehindVariable.Length; i++ )
{
textBoxes[i].Text = codeBehindVariable[i];
}
请记住,在 for
循环你必须确保textBoxes
和 codeBehindVariable
具有相同数量的项目(或使循环仅在最短列表的条目数量上运行)。 Zip
函数将自行处理此问题。
关于c# - C#/ASP.NET 中的控制数组类型循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12922627/