如何将多个双打输入到用逗号分隔的文本框中并存储在一个包含双精度数组的数组中?

时间:2013-02-02 22:33:46

标签: c# arrays winforms

我正在尝试在文本框中输入多个值,当我按下按钮时,它们将存储在一个数组中。像这样:1.1,2.2,3.3,4.4,5.5然后按下按钮,它们存储在索引0,1,2,3,4中

我理解这些值是一个字符串,需要转换,我想我接近答案,但我不确定,这是我一直在尝试的:

 private void textBox1_TextChanged(object sender, EventArgs e)
    {
        //five values entered from textbox
        string values = textBox1.Text;
        string[] EmailArr = values.Split(',');
        double[] yArray = new double[5] = Array.ConvertAll(values.Split(','), Double.Parse);
    }

我知道这是错的,但它是沿着正确的方向吗?任何帮助表示赞赏!谢谢!

2 个答案:

答案 0 :(得分:2)

linq方式:

var yArray = textBox1.Text
                     .Split(',')
                     .Select(m => Double.Parse(m.Trim()))
                     .ToArray();

顺便说一句,不要将它与TextChanged事件一起使用,而应使用Validated或Clicked on your button。

修改

请按照以下步骤操作:

双击“YourForm”.cs(具有“设计”)。

选择您的TextBox。

右键单击,选择“属性”。

请参阅“活动列表”。

删除“TextChanged”

行上的所有内容

DoubleClick on line 已验证(这将在此行添加文字)

这应该打开“代码”部分。

将我的答案代码转换为新方法“private void textBox1_Validated(...)”

删除问题中的所有代码。

答案 1 :(得分:2)

或旧的时尚方式:

    string values = textBox1.Text;
    string[] EmailArr = values.Split(',');
    double[] dlbArr = new double[EmailArr.Length];
    int index = 0;
    foreach (string item in EmailArr)
    {
        dlbArr[index] = Convert.ToDouble(item[index]);
        index++;
    }