Как добавить кавычки вокруг каждого элемента списка после .add? - PullRequest
1 голос
/ 02 сентября 2011

У меня есть список

 private List<string> additionalHeaderMeta = new List<string>();

и я хочу вывести его в CSV-файл. Все, что работает, находит, но оказывается, что некоторые элементы, которые я добавляю в AdditionalHeaderMeta, могут иногда содержать запятые, которые явно портят файл CSV. Как можно поставить кавычки вокруг каждого элемента после добавления элемента?

Я пытался

additionalHeaderMeta.Select(i => "\"" + i + "\"");

Но не повезло.

Ответы [ 2 ]

2 голосов
/ 02 сентября 2011

Если вы хотите изменить список на месте, просто зациклите его.

for (int index = 0; index < list.Count; index++)
    list[index] = /* modify item here */

То, что вы сделали, - это создали определение запроса, которое было бы лениво оцениваться, но вам действительно нужно было бы выполнить итерацию по запросу. Используйте запрос, если вы действительно хотите оставить список без изменений, но просто хотите проецировать данные в измененную форму.

var query = additionalHeaderMeta.Select(i => "\"" + i + "\"");   
foreach (var item in query)
    do whatever

Чтобы просто полностью заменить свой список другим, используйте ToList() в запросе и присвойте результат обратно вашему исходному списку.

additionalHeaderMeta = additionalHeaderMeta.Select(i => "\"" + i + "\"").ToList();   
1 голос
/ 02 сентября 2011

Ваш пример кода:

additionalHeaderMeta.Select(i => "\"" + i + "\"");

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

Он не изменит существующий список - вот откуда у вас путаница?

...