如何将 string.Join 应用于文本框数组?

How to apply string.Join to Textbox array?

在我的 C# WinForm 应用程序中,我的表单上有一个 TextBox 数组,看起来像:

[MyTextBox[0]]。 [我的文本框 [1]] 。 [我的文本框 [2]] 。 [我的文本框[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);

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

但是这些都有些丑陋,我想知道是否有更好的方法来实现这一点。有人可以给我建议吗?

那么MyTextBox就是TextBox[]?您可以使用 LINQ:

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

使用 linq:

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