C#Dictionary to .csv

use*_*150 12 c# csv file

我有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");
Run Code Online (Sandbox Code Playgroud)

我想要这个.csv文件输出:

0;0.15646E3;
1;0.45655E2;
2;0.46466E1;
3;0.45615E0;
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Tim*_*ter 26

也许是最简单的:

String csv = String.Join(
    Environment.NewLine,
    data.Select(d => $"{d.Key};{d.Value};")
);
System.IO.File.WriteAllText(pathToCsv, csv);
Run Code Online (Sandbox Code Playgroud)

您需要添加using LINQ和使用至少.NET 3.5

  • 此解决方案将在同一个单元格中写入键和值 (2认同)

Jar*_*Par 8

请尝试以下方法

using (var writer = new StreamWriter(@"the\path\to\my.csv")) {
  foreach (var pair in data) {
    writer.WriteLine("{0};{1};", pair.Key, pair.Value);
  }
}
Run Code Online (Sandbox Code Playgroud)

注意:如果key或value元素可以包含a,则无法使用;.如果是这样,您将需要添加一个转义机制来处理它


HPT*_*HPT 7

  File.WriteAllLines(@"pathtocsv.csv", data.Select(x => x.Key + ";" + x.Value + ";")));
Run Code Online (Sandbox Code Playgroud)