如何将string.Join应用于Textbox数组?

时间:2018-05-31 15:25:09

标签: c# textbox

在我的C#WinForm应用程序中,我的表单上有一个TextBox数组,如下所示:

[MyTextBox [0]]。 [MyTextBox [1]]。 [MyTextBox [2]]。 [MyTextBox [3]]。 [MyTextBox [4]]

如您所见,有一个分隔符“。”他们每个人之间。用户将在TextBoxes中输入5个不同的值,然后提交。在处理时,我想将所有这5个TextBoxes收集为由“。”分隔的一个字符串。例如,如果用户输入

[34]。 [56]。 [78]。 [90]。 [12]

并提交,我想将其作为一个字符串处理:34.56.78.90.12。 我在想使用string.Join(".", strArray)会很好和优雅,但我意识到这是一个TextBox的数组,而不是一个字符串数组。 要从TextBox中提取文本部分,我必须使用MyTextBox[index].Text,但这显然不适用于string.Join(".", strArray)

现在,我最后编写了以下代码:

string[] dataEntered = new string[5];
for(int i=0; dataEntered.Length; i++)
{
    dataEntered[i] = MyTextBox[i].Text;
}
string str = string.Join(".", dataEntered);

或者,在循环中使用字符串连接,添加“。”每次除了最后一个值之后。

但这些都很丑陋,我想知道是否有更好的方法来实现这一目标。请问有人能给我建议吗?

2 个答案:

答案 0 :(得分:4)

所以MyTextBoxTextBox[]?您可以使用LINQ:

IEnumerable<string> alltexts = MyTextBox.Select(txt => txt.Text);
string str = string.Join(".", alltexts);

答案 1 :(得分:1)

使用linq:

string str = string.Join(".", MyTextBox.Select(t => t.Text));