Как сохранить Lists в файл, так, что бы не появлялась пустая строчка в конце?

Juror

Client
Регистрация
16.09.2015
Сообщения
21
Благодарностей
7
Баллы
3
Приветствую уважаемые!

Есть снипет, который в ходе работы получает некие "строчные" данные и формирует из них список, с целью в конце работы сохранить все полученные данные построчно в файл на диск.

Изначально пытался реализовать это все через кубики, но если снипет формировал элементы List через Add/AddRange:
Код:
List<string> lst1 = new List<string>();
            lst1.Add("0");
            lst1.Add("1");
            lst1.Add("2");
            lst1.Add("3");
List<string> lst2 = new List<string>();
            lst2.Add("101");
            lst2.Add("202");
            lst2.Add("303");
//если нужно сохранить прежнее содержимое  lst1 добавив в конец его содержимое lst2
            lst1.AddRange(lst2);
// Записываем соржимое обеих списков в список проекта:
            project.Lists["MyList"].AddRange(lst1);
... а потом кубиком сохранять этот самый Lists["MyList"] в файл "List.txt", то в результате получим все значения в ОДНУ строчку:
Код:
0123101202303
ВАРИАНТ 2.
Потом решил убрать костыль в виде отдельного кубика, и сделать все из одного снипета. Столкнулся с другой проблемой.
Если сохранять список в файл напрямую из снипета, то в конце результирующего файла появляется пустая строчка:
Код:
string filename = "list_new";
List<string> lst1 = new List<string>();
            lst1.Add("0");
            lst1.Add("1");
            lst1.Add("2");
            lst1.Add("3");
List<string> lst2 = new List<string>();
            lst2.Add("101");
            lst2.Add("202");
            lst2.Add("303");
//если нужно сохранить прежнее содержимое  lst1 добавив в конец его содержимое lst2
            lst1.AddRange(lst2);
// Записываем соржимое обеих списков сразу в файл
File.WriteAllLines(project.Directory + "\\" + filename + ".txt",lst1);
Код:
0
1
2
3
101
202
303
КАК избежать появления пустой строчки в конце файла, когда сохраняю LIST напрямую на диск из снипета???
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Код:
var filepath = project.Directory + "\\" + filename + ".txt";
var content = string.Join(Environment.NewLine, lst1);
File.AppendAllText(filepath, content, Encoding.UTF8);
 
  • Спасибо
Реакции: Juror

Juror

Client
Регистрация
16.09.2015
Сообщения
21
Благодарностей
7
Баллы
3
Код:
var filepath = project.Directory + "\\" + filename + ".txt";
var content = string.Join(Environment.NewLine, lst1);
File.AppendAllText(filepath, content, Encoding.UTF8);
Отлично!!! Большое спасибо!
Предложенный Вами вариант добавляет в конец существующего файла элементы списка, БЕЗ пустой строчки в конце.
Заменив метод "AppendAllText" на "WriteAllText" я как раз и добился желаемого результата. За одно и подучил немного методы работы с файлами. Еще раз "спасибо". :az:


Может кому будет нужно сохранить список в файл, путем перезаписи (поверх предыдущего содержимого):
Код:
var filepath = project.Directory + "\\" + filename + ".txt";
var content = string.Join(Environment.NewLine, lst1);
//File.AppendAllText(filepath, content, Encoding.UTF8);       //ДОПИСАТЬ элементы списка "lst1" в конец файла
File.WriteAllText(filepath, content, Encoding.UTF8);       //записать элементы списка "lst1" в  файл (ВМЕСТО предыдущего содержимого)
 

Juror

Client
Регистрация
16.09.2015
Сообщения
21
Благодарностей
7
Баллы
3
Подскажите плз,
Как снипетом отсортировать список по убыванию ("Как числа", с проверкой на возможность такой сотрировки)?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Подскажите плз,
Как снипетом отсортировать список по убыванию ("Как числа", с проверкой на возможность такой сотрировки)?
Есть таска для этого. Сейчас сортирует как string
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)