遍历列表的通用列表并以csv格式(C#)写入

时间:2018-02-14 08:34:47

标签: c# list csv generic-list

我想将我的List的结果保存为csv保存到编码为UTF的变量路径中。

但是当我在我的名单上循环使用foreach时:

    foreach (String item in finalausgabe)
            {
                Console.WriteLine(ausgabe.GetType());
            }

我在我的控制台中获得以下结果(仅前五行预览)

System.Collections.Generic.List1 [System.String]
System.Collections.Generic.List1 [System.String]
System.Collections.Generic.List1 [System.String]
System.Collections.Generic.List1 [System.String]
System.Collections.Generic.List1 [System.String]

但我的清单看起来实际上是这样的:

“STATUS”“USERID”“用户名”“Vorname”“Nachname”“Zweiter Vorname”
“active”“1”“testm”“test”“M”“”“M”“”“Kuhnkies” “活跃的”“10”“lext”Sofia Daasch“”“F”“”“Lex” “活跃的”“102”“reiterr”Anna Dabbagh“”“M”“”“Reiter” “active”“103”“buchmeiera”Lea Dabbert“”“M”“”“Buchmeier” “活跃的”“104”“fuchss”Emilia Dabels“”“M”“”

你可以看到它已经准备好作为制表符分隔的csv,只需要在编码为“utf-8”的csv文件中逐行保存。

2 个答案:

答案 0 :(得分:0)

很明显你应该写点像

foreach (String item in finalausgabe)
            {
                Console.WriteLine(item);
            }

答案 1 :(得分:0)

我建议使用CsvHelper,而不是将数据作为单独的字符串进行排序,例如:

class MyRecord
{
    public string Status {get; set;}
    public string UserId {get; set;}
    public string UserName {get; set;}
}

然后使用CsvHelper作为以下内容:

List<MyRecord> records = yourFilledList;
var textWriter = new StreamWriter("your file path",isAppend, Encoding.UTF8);
var csv = new CsvWriter( textWriter );
csv.WriteRecords( records );

foreach项目将在每次迭代中自动为您提供,因此您应该直接使用它,它遵循

Console.WriteLine(element);

有关CsvHelper的更多信息以及如何安装nuget check this