如何在C#中拆分和保存CSV文件中的行

时间:2014-12-01 09:43:39

标签: c# string file csv split

我有以下CSV文件:

34416; 15,14; 22,67; 71,51; 73,59; 73,1; 67,19; 64,07; 64,29; 67,94; ...

...

现在,我想保存第一个数字34416并用它替换每个分号,但不要替换第一个分号。

现在,有下一行。相同的程序,只是开头的另一个数字。

public List<string> ConvertFile()
    {
        string allLines = string.Empty;
        allLines = GetLinesFromFile();

        for (int i = 0; i < GetLinesFromFile().Length; i++)
        {
            string[] split = allLines.Split(new Char[] { ';' });
            string number = split[i];
            allLines.Replace(";", ";34416|");
        }

        List<string> re = new List<string>();
        re.Add(allLines);

        return re;
    }

我对C#编码很陌生 - 你能帮我吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

你需要重新思考你的逻辑。首先,GetLinesFromFile()似乎返回一个字符串;我会返回List<string>而不是(文件中的每一行都是一个字符串)。然后你可以这样做:

public List<string> ConvertFile()
{
    var result = new List<string>();

    foreach(var line in GetLinesFromFile())
    {
        var lineParts = line.Split(';');
        var fixedLine = line.Replace(";", ";" + lineParts[0] + "|");
        result.Add(fixedLine);
    }

    return result;
}

答案 1 :(得分:0)

试试这个

public List<string> ConvertFile( )
        {
            string allLines = GetLinesFromFile();
            List<string> re = new List<string>();
            for (int i = 0; i < allLines.Length; i++)
            {
                string[] split = allLines.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                allLines.Replace(";", ";" + split[0] + "|");
                re.Add(allLines);
            }
            return re;
        }