有没有办法在 for C# 中读取多个文本框

Is there a way to read multiple textboxes within a for C#

有没有更好的方法来完成这段代码?我想要它在 for

里面
            points[0] = Convert.ToDouble(textBox1.Text);
            points[1] = Convert.ToDouble(textBox2.Text);
            points[2] = Convert.ToDouble(textBox3.Text);
            points[3] = Convert.ToDouble(textBox4.Text);
            points[4] = Convert.ToDouble(textBox5.Text);
            points[5] = Convert.ToDouble(textBox6.Text);
            points[6] = Convert.ToDouble(textBox7.Text);
            points[7] = Convert.ToDouble(textBox8.Text);

索引 [i] 在 textBox[i].Text

中不起作用
for(int i = 0; i < points.Length; i++)
            {
                points[i] = Convert.ToDouble(textBox[i].Text);
            } 

你可以写这个添加一个 using Linq;

var points = new [] { textBox1, textBox2, textBox3, textBox4, textBox5,textBox6, textBox7}
                    .Select(x => double.Parse(x.Text)).ToArray();

这将从您的文本框创建一个数组,然后在此序列上我们应用 Select 扩展来枚举每个元素并将其内容解析为双精度数。结果序列最终转换为数组。

当然,这假设了很多关于双倍输入的转换和输入的正确性。如果您不确定输入中是否存在表示双精度值的字符,那么您需要一种更传统的方法,即在转换过程中添加检查。

List<double> p = new List<double>();
var tb = new []{ textBox1, textBox2, textBox3, textBox4,
                 textBox5, textBox6, textBox7,};

for(int i = 0; i < tb.Length; i++)
   if(double.TryParse(tb[i].Text, out double temp))
       p.Add(temp);

var points = p.ToArray();