在c#中将文本框值存储在数组中

时间:2013-05-23 07:11:42

标签: c# arrays

我有一个包含10个TextBoxes和OK按钮的表单。 单击确定按钮时。我需要将文本框中的值存储到数组字符串中。

有人能帮助我吗?

2 个答案:

答案 0 :(得分:6)

  

我需要将文本框中的值存储到数组字符串中。

string[] array = this.Controls.OfType<TextBox>()
                              .Select(r=> r.Text)
                              .ToArray();

上面要求TextBoxes直接在Form上,而不是在容器内,如果它们在多个容器内,那么你应该get all the controls recursively

确保包含using System.Linq;

如果您使用的是比.Net Framework 3.5更低的框架。然后你可以使用一个简单的foreach循环,如:

List<string> list = new List<string>();
foreach(Control c in this.Controls)
{
  if(c is TextBox)
     list.Add((c as TextBox).Text);
}

(这可以与.Net framework 2.0一起使用)

答案 1 :(得分:2)

要使所有文本框不仅仅是表单的直接子项( this

Func<Control, IEnumerable<Control>> allControls = null;
allControls = c => new Control[] { c }.Concat(c.Controls.Cast<Control>().SelectMany(x => allControls(x)));

var all = allControls(this).OfType<TextBox>()
            .Select(t => t.Text)
            .ToList();