有没有办法在用逗号分隔的文本框中显示字符串数组项。我无法做到正确,经历了大量的试验和错误。
任何帮助或建议都值得高度赞赏。
private void button9_Click(object sender, EventArgs e)
{
int lineNum = 1;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Text Files|*.txt";
openFileDialog1.Title = "Select a Text file";
openFileDialog1.FileName = "";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
string file = openFileDialog1.FileName;
string[] text = System.IO.File.ReadAllLines(file);
foreach (string line in text)
{
if (lineNum <= 30)
{
textBox1.Text = Convert.ToString( text);
}
else
{
textBox2.Text = Convert.ToString(text);
}
}
}
}
请提出任何建议
答案 0 :(得分:5)
当然,只需使用String.Join
textBox1.Text = string.Join(",", text);
如果您想在每个逗号使用后附加NewLine
:
textBox1.Text = string.Join("," + Environment.NewLine, text);
此外,您不需要使用foreach
循环。
编辑:根据您的评论,您可以使用以下内容:
textBox1.Text = string.Join("," + Environment.NewLine, text.Take(30));
if(text.Length > 30)
textBox2.Text = string.Join("," + Environment.NewLine, text.Skip(30));
注意:为了使用LINQ
方法(例如Take
和Skip
),您需要在{$ 1}}命名空间中加入System.Linq
项目
using System.Linq;
答案 1 :(得分:1)
@ user2889827在您的代码中出现此错误:每个新的循环周期都会用新字符串替换hold Textbox1.Text
。
要纠正此问题,您必须将保留文本与新文本连接:
...
textbox1.text+=text;
...
textbox2.text+=text;
同时将string
转换为string
也没用
或者,如果您愿意,可以使用@ Selman22解决方案,在您的情况下,是解决问题的最佳解决方案