要.csv的 C# 字典
本文关键字:字典 csv | 更新日期: 2023-09-27 18:33:43
我有C#Dictionary
,我想从中创建.csv
文件。例如,我有这本字典:
Dictionary<string, string> data = new Dictionary<string, string>();
data.Add("0", "0.15646E3");
data.Add("1", "0.45655E2");
data.Add("2", "0.46466E1");
data.Add("3", "0.45615E0");
我想.csv
文件输出:
0;0.15646E3;
1;0.45655E2;
2;0.46466E1;
3;0.45615E0;
我该怎么做?
也许是最简单的:
String csv = String.Join(
Environment.NewLine,
data.Select(d => $"{d.Key};{d.Value};")
);
System.IO.File.WriteAllText(pathToCsv, csv);
需要添加using LINQ
并至少使用 .NET 3.5
尝试以下操作
using (var writer = new StreamWriter(@"the'path'to'my.csv")) {
foreach (var pair in data) {
writer.WriteLine("{0};{1};", pair.Key, pair.Value);
}
}
注意:如果键或值元素可以包含;
,这将不起作用。 如果是这样,您将需要添加一个转义机制来处理它
File.WriteAllLines(@"pathtocsv.csv", data.Select(x => x.Key + ";" + x.Value + ";")));
我的字典与上面提出的问题(user1387150)中的字典相似,除了 VALUE 部分是一个数组(双精度,即双精度[])。
调整上面的 Jared 解决方案,允许将Dictionary<string, double[]>
写入 csv,如下所示:
using (var writer = new StreamWriter(@"C:'path'test.csv"))
{
foreach (var pair in data)
{
writer.WriteLine("{0},{1};", pair.Key, String.Join(",", pair.Value.Select(x => x.ToString()).ToArray()));
}
}