如何从List创建csv文件〈String[]>

piah890a  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(136)

任何人都可以帮助我创建一个csv文件从列表,我的情况是,我有一个多维值像下面的列表

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]}

字符串[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

任何帮助都将不胜感激。

2guxujil

2guxujil1#

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

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

或者更有效的 tiny 位(没有中间字符串):

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();
        }
    }
kmpatx3s

kmpatx3s2#

使用linq:

File.WriteAllLines("text.txt", lst.Select(x => string.Join(",", x)));

相关问题