2015-10-10 3 views
-6

У меня есть следующий код на C#, который предоставляет нижеприведенный вывод, но мне нужна помощь, чтобы изменить его на выходной результат. Как я могу переписать свой код для предоставления «Требуемого вывода»?C# foreach loop formatting

SearchResultSet results = session.Search(searchRequest); 
results.GetCount()); 
IEnumerable columns = results.GetColumns(); 
while (results.HasNext()) 
{ 
    foreach (string column in columns) 
    { 
     Console.WriteLine(column + ": " + results.GetString(column)); 
    } 
    Console.WriteLine(); 
} 

Выход:

 
Unique_ID: 234556 
Address: 555 John Street 
City: Orlando 
State: FL 
Zip: 32751 
Unique_ID: 5326536 
Address: 1200 Avenue of America 
City: New York 
State: NY 
Zip: 10016 
Unique_ID: 4815585 
Address: 149 Madison Avenue 
City: New York 
State: NY 
Zip: 10016 

Обязательный выход:

 
Unique_ID|Address|City|State|Zip 
234556|555 John Street|Orlando|FL|32751 
5326536|1200 Avenue of America|New York|NY|10016 
4815585|149 Madison Avenue|New York|NY|10016 
+3

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он читает как домашнее задание – MickyD

+0

моим первоначальным вопросом будет этот @zXSwordXz, который написал исходный код ..? почему вы не можете редактировать код самостоятельно .. если вы не можете читать и понимать текущий код .. что делает вывод кода в настоящее время .. также было бы полезно, если бы вы могли показать sql-запрос или пример того, что исходный файл выглядит как .. это плохой пример вопроса, также если вы не знаете, как добавить '' 'в конце имен столбцов .. при всем уважении, возможно, вы не должны кодировать. также вы можете реализовать метод string.Join. Сделайте еще несколько исследований и приложите больше усилий с вашей стороны. – MethodMan

+0

Вау ... вы, ребята, жестоки для начинающих. Во всяком случае, это не домашнее задание. @methodman, он не приходит из sql, данные поступают из API. В любом случае, вы правы, мне больше не нужно работать. Спасибо. – zXSwordXz

ответ

1

Ммм, я не проверял. Надеюсь, это поможет вам. Я хотел бы сделать это с помощью двух foreach внутри основного while

SearchResultSet results = session.Search(searchRequest); 
results.GetCount()); 
IEnumerable columns = results.GetColumns(); 
bool printColumns = true; 
     while (results.HasNext()) 
     { 
      if(printColumns){ 
       foreach (string column in columns) 
       { 
        Console.WriteLine(String.Format("{0}|", column)); //Will print Unique_ID|Address|etc... 
       }    
      } 
      printColumns = false; 
      foreach (string column in columns) 
      { 
       Console.Write(String.Format("{0}|", results.GetString(column))); //Will print 234556|555 JOHN STREET|Orlando|FL|32751 
      }   
      Console.WriteLine(); 
     } 

EDIT:

Предыдущий код держит трубку в конце строк. Если вы этого не хотите, вы должны использовать переменную String, объединить результат, и после каждого foreach вы просто выполняете функцию susbtr для удаления конечной трубы.

+0

В этом случае, возможно, не обязательно говорить «Редактировать». Просто внесите необходимые изменения. :) – MickyD

+0

Вы также можете установить 'bool' в значение false, а затем в' foreach' напишите трубку до значения, если 'bool' истинно и установите значение true в конце цикла. Таким образом, трубы находятся только между значениями. – juharr