Удалить или не писать последний ';'символ в ряду - PullRequest
2 голосов
/ 13 января 2012

Хорошо, у меня есть экспорт в скрипт CSV.

Я экспортирую список структур. Я пишу с помощью StringWriter. В цикле foreach массива структурного поля я перебираю все свойства и после каждого свойства ставлю ';'. В конце строки я поставил WriteLine ().

Итак, в качестве вывода у меня есть:

value1;value2;value3;

И я хочу:

value1;value2;value3

Вопрос в том, как получить то, что я хочу, из того, что я получил, или на основе того, что я уже сделал.

У меня есть 3 идеи прямо сейчас:

  1. Последние 2 символа в строке должны быть что-то вроде "; \ r (\ n)", поэтому замените эту комбинацию ничем.
  2. Проверьте, является ли свойство последним.
  3. Обрезать последний (перед новой строкой) символ в каждой строке.

Ответы [ 4 ]

6 голосов
/ 13 января 2012

Используйте String.Join, чтобы сформировать каждую строку для вашего вывода. Он не позволяет вам проверить, какой термин является последним.

http://msdn.microsoft.com/en-us/library/57a79xd0.aspx

var values = { "value1", "value2", "value3" };

string line = string.Join(";", values);

строка будет

"value1;value2;value3"
3 голосов
/ 13 января 2012

попробуйте этот код,

str.TrimEnd(';');
1 голос
/ 13 января 2012

Я использую StringBuilder и просто делаю:

var builder = new StringBuilder();
// ...
// add the text
// ...
builder.Length--;

Таким образом, я могу избежать копирования строки.

1 голос
/ 13 января 2012

Обычно я просто удаляю последний символ после формирования строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...