C# 从文件中读取并根据字符c拆分信息#

C# 从文件中读取并根据字符c拆分信息#,c#,split,streamreader,C#,Split,Streamreader,我从一个文本文件中读取信息,我想逐行浏览文本文件,在每一行中,我想根据一个字符(例如,“,”)将每个句子从另一个句子中分割出来,我想将数据保存在一个数组中,但当我打印它时,我只得到最后一个结果 private void button1_Click_1(object sender, EventArgs e) { string StringArray = null; //to get the browsed file and get sure it

我从一个文本文件中读取信息,我想逐行浏览文本文件,在每一行中,我想根据一个字符(例如,“,”)将每个句子从另一个句子中分割出来,我想将数据保存在一个数组中,但当我打印它时,我只得到最后一个结果

     private void button1_Click_1(object sender, EventArgs e)
    {
        string StringArray = null;
        //to get the browsed file and get sure it is not curropted
        try 
        {
            DialogResult result = openFileDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
                {
                    string data;
                    while ((data = sr.ReadLine()) != null)
                    {
                    StringArray = data.Split(',');
                    }
                }
                   for (int i = 0; i < StringArray.Length; i++)
                    {
                        textBox1.Text = StringArray[i];
                    }
                FilePath.Text = openFileDialog1.FileName;
                textBox1.Text = (string)File.ReadAllText(FilePath.Text);
            }
        }
        catch(IOException ex) 
        {

            MessageBox.Show("there is an error" + ex+ "in the file please try again");
        }


    }
private void按钮1\u单击1(对象发送者,事件参数e)
{
字符串StringArray=null;
//获取已浏览的文件并确保其未被选中
尝试
{
DialogResult=openFileDialog1.ShowDialog();
if(result==DialogResult.OK)
{
使用(StreamReader sr=newstreamreader(openFileDialog1.FileName))
{
字符串数据;
而((data=sr.ReadLine())!=null)
{
StringArray=data.Split(',');
}
}
对于(int i=0;i
以下是您的错误:

在上面定义:

string StringArray = null;
然后,稍后将其用作:

StringArray = information.ToString().Split(SplitCommas);
Split返回字符串[],而不是字符串。您需要将顶部的声明更改为

string[] StringArray;

错误:“无法将类型字符串[]隐式转换为字符串”。应该提示您正在尝试将字符串数组存储到字符串中

您需要将StringArray定义为
String[]

string[] StringArray = null;
您最好使用for循环而不是for循环

StringArray = data.Split(',');

在第三行中,您需要将字符串数组声明为字符串,您应该将其声明为数组:

string [] StringArray = null;

我照你说的做了问题是当我打印它时,我刚刚得到最后一个结果,我正在打印它。当你说“打印它”时,你的意思是设置textbox1.Text??如果是这样,您多次将textbox1设置为新值,但会覆盖以前编写的值。您可能希望做的是附加文本(比如textbox1.text+=StringArray[i],尽管stringbuilder更适用)。不过,我假设这不会是您在这段代码中发现的最后一个bug,因此我建议添加一些断点,并延长一段时间。他遇到的问题是,他正在替换循环中的数组,直到读取文件结尾,因此字符串数组中的唯一值是最后读取的行。我建议为字符串数组创建一个列表,然后添加range data.Split(“,”),以便for循环获取所有拆分字符串。是的,其中还有其他错误,比如在最后用全新的文件读取覆盖所有form1更改。我想他在这里是一个新手thoguh,他会在调试后弄明白这些。事实上,大多数源代码都可以重写为字符串[][]输出=System.IO.File.ReadAllText(文件名)。替换(“\r”,”).Split(“\n”).ToList()。选择(a=>a.Split(“,”).ToArray();但这对帮助他学习有什么用呢。