在我的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);
或者,在循环中使用字符串连接,添加“。”每次除了最后一个值之后。
但这些都很丑陋,我想知道是否有更好的方法来实现这一目标。请问有人能给我建议吗?
答案 0 :(得分:4)
所以MyTextBox
是TextBox[]
?您可以使用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));