C# 将列添加到CSV,并将列合并到此新列

C# 将列添加到CSV,并将列合并到此新列,c#,csv,merge,C#,Csv,Merge,我有一个如下的CSV文件: Header1;Header2;Header3;Header4;Header5;Header6 abc;123;xyz;...;...;... 我想在此csv末尾添加一个新列,并直接将列1+2合并到此新列中: Header1;Header2;Header3;Header4;Header5;Header6;Header7 abc;123;xyz;...;...;...;abc123 我可以添加一个新列,但如何添加数据 以下是我正在使用的: static void M

我有一个如下的CSV文件:

Header1;Header2;Header3;Header4;Header5;Header6
abc;123;xyz;...;...;...
我想在此csv末尾添加一个新列,并直接将列1+2合并到此新列中:

Header1;Header2;Header3;Header4;Header5;Header6;Header7
abc;123;xyz;...;...;...;abc123
我可以添加一个新列,但如何添加数据

以下是我正在使用的:

static void Main(string[] args)
{
    String filePath = @"C:/Data.csv";

    var csv = File.ReadLines(filePath)
      .Select((line, index) => index == 0
         ? line + ";ExtID"
         : line + ";" + line.ToString())
      .ToList();

    File.WriteAllLines(filePath, csv);
}
如果您有一个简单的csv(不带引号),您可以尝试Linq:添加标题或
拆分
行和
Concat
2
从中获取
n:

  ...

  var csv = File
    .ReadLines(filePath)
    .Select((line, index) => index == 0 
       ? line + ";ExtID"                                     // Extra header
       : line + ";" + string.Concat(line.Split(';').Take(2)) // first two items added
     )
    .ToList();

  File.WriteAllLines(filePath, csv);
无LINQ方法

        string filePath = @"C:/Data.csv";
        var lines = File.ReadLines(filePath).ToList();

        // Add new Column
        var newColumn = ";Header7";
        lines[0] = lines[0] += newColumn;

        // Adds items to the new column
        for (int index = 1; index < lines.Count; index++)
        {
            var rowItems = lines[index].Split(';');
            lines[index] = $"{lines[index]};{rowItems[0]}{rowItems[1]}";
        }

        File.WriteAllLines(filePath, lines);
stringfilepath=@“C:/Data.csv”;
var lines=File.ReadLines(filePath.ToList();
//添加新列
var newColumn=“;Header7”;
行[0]=行[0]+=新列;
//将项目添加到新列
for(int index=1;index
就我个人而言,我从来不敢做自己的CSV解析。使用其中的一种应该是一种方法。