c#string split忽略分隔符之间的空值

时间:2013-12-17 12:15:29

标签: c# string debugging split outofrangeexception

嘿,我已经问了这个,但它还没有解决,没有任何效果,这里是我的完整代码:

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Insertss
{
class Program
{
    static void Main()
    {
        ReadWrite("projektangebote.txt", "inserts.txt");
    }

    static void ReadWrite(string readName, string writeName)
    {
        StreamReader streamReader;
        StreamWriter streamWriter;
        string str;
        List<string> values = new List<string>();
        streamReader = File.OpenText(readName);
        str = streamReader.ReadLine();
        streamWriter = new StreamWriter(writeName);

        while (str != null)                                         
        {
            values.Add(str);                                   
            str = streamReader.ReadLine();               
        }

        foreach (string a in values)
        {
            int temp = 1;
            String[] temparray = a.Split(';');
            streamWriter.WriteLine("Insert into table Firma values({0},'{1}','{2}')", temp, temparray[1], temparray[4]);
            temp++;
        }
        streamReader.Close();
    }
    }
}

好的,我插入:

PR_Arbeitstitel; PR_Bereich; PR_Firma_Name; PR_Firma_Organisation; PR_Massnahme; PR_Standort; PR_ProjektTeamDaten_ProjektOrt

SAV Seite; b.i.b。;;;; PB;

但是第二行(ÜberarbeitungderSAV Seite; b.i.b .;;;; PB;)我得到一个IndexOutOfRangeException,因为: Debugged

任何人都知道如何解决这个问题? 只插入一些字符或空格..

1 个答案:

答案 0 :(得分:1)

  

JAVA-Apllication; b.i.b; Novabig ....

这是你要拆分的字符串 - &gt;请参阅调试器变量a,您还可以看到temparray包含我呈现的字符串部分。

您可能正在读错文件(检查名称和目录)。您可以手动检查在调试器中读取哪些行,并查看它是否与预期值匹配。

拆分字符串工作正常,对于字符串a,它应该给出3的数组,因为字符串a只有两个;&#39; s