c# - 如何从 List<String[]> 创建一个 csv 文件

标签 c# linq csv

谁能帮我从 List 创建一个 csv 文件,我的情况是,我在一个 List 中有一个多维值,如下所示

List<string[]> lst = new List<string[]>();
lst= csv1.ToList();

lst 包含如下值,

lst[0] = {string[53]}
lst[1] = {string[53]}
lst[2] = {string[53]}
lst[3] = {string[53]}
lst[4] = {string[53]}

string[53] 包含如下值

lst[0]
    string[0] = "abc"
    string[1] = "def"
    string[2] = "ghi"
    string[3] = "jkl"
    string[4] = "mno"
    ...
lst[1]
    string[0] = "123"
    string[1] = "456"
    string[2] = "789"
    string[3] = "10"
    string[4] = "11"
    ...

我只是想将这个多维列表写入 csv 文件,因为 lst[] 中的每个项目都写入 csv 中的行,string[] 中的每个项目写入列,这样我的 csv 中的最终输出是

abc,def,ghi,jkl,mno
123,456,789,10,11

非常感谢任何帮助。

最佳答案

在最简单的层面上,不处理引用/转义/多行 CSV 问题,然后循环;也许是这样的:

    using (var file = File.CreateText(path))
    {
        foreach(var arr in lst)
        {
           file.WriteLine(string.Join(",", arr));
        }
    }

或更高效的微小(没有中间字符串):

    using (var file = File.CreateText(path))
    {
        foreach (var arr in lst)
        {
            if (String.IsNullOrEmpty(arr)) continue;
            file.Write(arr[0]);
            for(int i = 1 ; i < arr.Length ; i++)
            {
                file.Write(',');
                file.Write(arr[i]);
            }
            file.WriteLine();
        }
    }

关于c# - 如何从 List<String[]> 创建一个 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13815634/

相关文章:

c# - 动态 if 语句?

c# - 如何使用 LINQ to XML 接收列表格式的数据

c# - 从包含逗号分隔值的字符串数组中查找项目的索引

java - 将 CSV 文件解析为 HashMap 存储空值

c# - 使用 C# 将系统日期转换为 M/d/yyyy 格式,而不管系统格式如何

c# - Linq Query 连接重叠范围并构造新的连续范围

c# - 在 LINQ 谓词中使用 OrderBy?

Java,将 CSV 的每一行转换为字符串

sql - 在 SSIS csv 导出中去除日期/时间分隔符

c# - 错误 WebHostBuilder 只允许创建 WebHost 的单个实例