在文本文件中使用逗号分隔值打印输出

Posted

技术标签:

【中文标题】在文本文件中使用逗号分隔值打印输出【英文标题】:Printing output with comma separated values in a text file 【发布时间】:2019-09-09 16:07:53 【问题描述】:

我有一个 C# 代码来执行 TFS 共享查询并循环遍历结果并将结果打印到文本文件中。

我的代码正在从 TFS 共享查询中取回结果并返回结果,我想用逗号分隔的单行打印缺陷 ID。但我当前的代码是在每一行打印每个 Id。

Dictionary<string, string> variables = new Dictionary<string, string>();
variables.Add("project", tfsQuery.Project.Name);
var results = witStore.Query(tfsQuery.QueryText, variables);


foreach (WorkItem item in results)
                
                    var id = item.Id.ToString();
                    tw.WriteLine(String.Join(",", id));
                
                tw.Close();

例如:如果我的结果计数是 5

预期: 12345,23432,54654,23432,546542

实际:

12345

23432

54654

23432

546542

【问题讨论】:

【参考方案1】:

我没有用过 TFS,但试试这样的:

var IDs = results.Select(w => w.Id.ToString());
tw.WriteLine(String.Join(",", IDs));

不需要循环。

【讨论】:

【参考方案2】:

那是因为您正在寻找所有元素,并且对于您正在执行的每个元素tw.WriteLine()。您在这里有两个选择,要么执行 tw.WriteLine(String.Join(",", results.Select(w =&gt; w.Id.ToString())),要么您可以使用 foreach 但执行 tw.Write(),例如:

bool firstIteration = true;
foreach (WorkItem item in results)

   if(!firstIteration)
   
       tw.WriteLine(",");
   
   firstItreration = false;
   var id = item.Id.ToString();
   tw.WriteLine(item.ToString());

tw.Close();

【讨论】:

以上是关于在文本文件中使用逗号分隔值打印输出的主要内容,如果未能解决你的问题,请参考以下文章

逗号分隔的文本文件到通用列表

从 xml 标签获取值到 unix 中的逗号分隔文本文件

CSV (逗号分隔值文件格式)

CSV (逗号分隔值文件格式)

导出CSV文件是以逗号为分隔符的吗?

字符串 CSV解析 表格 逗号分隔值