Печать вывода с разделенными запятыми значениями в текстовом файле - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть код C # для выполнения общего запроса TFS, циклического просмотра результата и печати результата в текстовом файле.

Мой код извлекает результаты из общего запроса TFS и возвращает результат,Я хочу напечатать идентификатор дефекта в одну строку с разделенной запятой.Но мой текущий код печатает каждый 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 ]

1 голос
/ 19 апреля 2019

Я не использовал TFS, но попробуйте что-то вроде этого:

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

Нет необходимости в петле.

0 голосов
/ 19 апреля 2019

Это потому, что вы проповедуете все элементы и для каждого элемента, который вы делаете 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...