簡體   English   中英

C# 字典到 .csv

[英]C# Dictionary to .csv

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM