gpt4 book ai didi

c# 在 CSV 文件末尾添加一列

转载 作者:太空狗 更新时间:2023-10-30 00:13:59 25 4
gpt4 key购买 nike

试图在 cvs 文件的末尾添加一列,这只会计算行数(或者可以都是相同的数字,但并不重要),因为主要目的是添加一个新列里面有一些数据。

我的示例 CSV 文件有 3 列,每列中都有一些随机数据。

我现在有的是

    List<string> newColumnData = new List<string>() { "D" };
List<string> lines = File.ReadAllLines(@"C:/CSV/test.csv").ToList();

//add new column to the header row
lines[0] += ",Column 4";
int index = 1;

//add new column value for each row.
lines.Skip(1).ToList().ForEach(line =>
{
//-1 for header
lines[index] += "," + newColumnData[index - 1];
index++;
});
//write the new content
File.WriteAllLines(@"C:/CSV/test.csv", lines);

然而,这会抛出一个异常“索引超出范围必须为非负且小于集合的大小”

一如既往地欢迎任何建议。

最佳答案

你不应该在 foreach 中建立索引。 foreach 一次给你一行。

lines.Skip(1).ToList().ForEach(line =>
{
//-1 for header
line += "," + newColumnData[index - 1];
index++;
});

lambda 表达式的意思是:获取列表中的每个元素,并将其称为“行”,然后对它执行大括号内的操作。

另外,正如我在这里看到的,您的 newColumnData 中似乎只有一项,即字符串“D”。然而,您正在为它编制索引,就好像您阅读的 csv 文件中的每一行都在此列表中有一个项目一样。如果您的 csv 文件中有多于一行,那也会导致索引超出范围,但是...没关系,我想得越多,您就越应该接受 Dmitry Bychenko 的回答。

关于c# 在 CSV 文件末尾添加一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com