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

问题描述 投票:0回答:2

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

.net c#-4.0 tfs
2个回答
1
投票

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

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

不需要循环。


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();
© www.soinside.com 2019 - 2024. All rights reserved.