如何在用逗号分隔的文本框中显示项目数组?

时间:2014-04-05 16:01:12

标签: c# .net arrays textbox

有没有办法在用逗号分隔的文本框中显示字符串数组项。我无法做到正确,经历了大量的试验和错误。

任何帮助或建议都值得高度赞赏。

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);
                 }
            }
        }
   }

请提出任何建议

2 个答案:

答案 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方法(例如TakeSkip),您需要在{$ 1}}命名空间中加入System.Linq项目

using System.Linq;

答案 1 :(得分:1)

@ user2889827在您的代码中出现此错误:每个新的循环周期都会用新字符串替换hold Textbox1.Text
要纠正此问题,您必须将保留文本与新文本连接:

...
textbox1.text+=text;
...
textbox2.text+=text;

同时将string转换为string也没用 或者,如果您愿意,可以使用@ Selman22解决方案,在您的情况下,是解决问题的最佳解决方案