有没有更好的方法来执行此代码块?我想在一个里面
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);
}
您可以使用Linq添加此代码;
var points = new [] { textBox1, textBox2, textBox3, textBox4, textBox5,textBox6, textBox7}
.Select(x => double.Parse(x.Text)).ToArray();
这将从您的文本框中创建一个数组,然后在此序列上,应用Select扩展名枚举每个元素并将其内容解析为double。最终的序列最终转换为数组。
当然,这要以您输入的两倍和输入的正确性为前提进行很多转换。如果不确定输入中是否存在代表双精度值的字符,则需要一种更传统的方法,在转换过程中添加一个检查。
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();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句