Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中拆分和保存CSV文件中的行#_C#_String_File_Csv_Split - Fatal编程技术网

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

C# 如何在C中拆分和保存CSV文件中的行#,c#,string,file,csv,split,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 = GetL

我有以下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;
    }
公共列表转换文件()
{
string allLines=string.Empty;
allLines=GetLinesFromFile();
对于(int i=0;i
我对C#编码很陌生-你能帮我吗


提前谢谢。

你需要重新考虑你的逻辑。首先,
GetLinesFromFile()
似乎返回一个字符串;我希望它返回一个
列表
(文件中的每一行都是一个字符串)。然后你可以这样做:

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;
}
公共列表转换文件()
{
var result=新列表();
foreach(GetLinesFromFile()中的变量行)
{
var lineParts=line.Split(“;”);
var fixedLine=line.Replace(“;”,“;”+lineParts[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;
        }
公共列表转换文件()
{
字符串allLines=GetLinesFromFile();
List re=新列表();
for(int i=0;i
您知道CSV数据单元格也可以包含分号吗?看看RFC-4180:(第2.6点)您正在调用
所有行上的
.Replace(..)
,而您应该在当前行上调用它,如
allLines.Replace(“;”,“34416 |”)。然后用每行的第一个数字替换34416。好的,
必须是一个
列表
?哎呀,忘记添加函数了;编辑我的代码以修复它:通过调用
GetLinesFromFile()
替换
lines
。CHAR不包含拆分/替换的定义。如我所说:更改
GetLinesFromFile()
以便返回一个
列表
字符串[]
,文件中的每一行都是一个字符串。例如,如果此代码对您运行良好,请将其标记为正确并进行表决。