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

时间:2019-04-19 11:11:49

标签: .net c#-4.0 tfs

我有一个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

2 个答案:

答案 0 :(得分:1)

我没有使用过TFS,但是尝试这样的事情:

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

不需要循环。

答案 1 :(得分:0)

那是因为您要遍历所有元素,并且要为每个元素做tw.WriteLine()。您在这里有两个选择,要么做tw.WriteLine(String.Join(",", results.Select(w => 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();