|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||||||||||||||||||||||||||
Получение и возвращение неопределенной коллекции27.08.2015, 16:17. Показов 2497. Ответов 13
Метки нет (Все метки)
Для начала, если кто то придумает название более информативное буду благодарен.
Мне надо два метода, они оба будут работать с файлами txt, первый будет считывать и возвращать все содержимое файла в виде коллекции (каждая строка - новый элемент), второй принимать коллекцию и записывать ее в файл (не дописывать в конец а перезаписывать если файл существует) Загвоздка в том что коллекция может быть List или HashSet или SortedSet или Queue или Stack, если во все перечисленное нельзя впихнуть Queue или Stack, то я от них откажусь. на данный момент это выглядит так (но тут все через List работает, мне надо уйти от этого): Кликните здесь для просмотра всего текста
Первый вопрос, можно ли как-нибудь что бы метод работал со всеми 5 коллекциями? Второй, как лучше это сделать? Как вариант:
по этому как то не очень мне этот вариант, а до вызова метода очищать список мне не хочется. Может как то можно через обобщения, только как мне перечислить все эти варианты списков, я делаю так:
0
|
||||||||||||||||||||||||||
| 27.08.2015, 16:17 | |
|
Ответы с готовыми решениями:
13
Получение коллекции из ассинхронного вызова Получение элементов с индексами при обходе коллекции Получение коллекций из элементов коллекции, которые будут объединены по какому-то свойству |
|
|
||
| 27.08.2015, 16:55 | ||
|
Вот эти они все реализуют. ICollection<T>, IEnumerable<T>
0
|
||
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
||||||
| 27.08.2015, 17:15 | ||||||
|
VLK,
Кликните здесь для просмотра всего текста
P.S. И я бы не рекомендовал return'ить что-либо при возникновении исключения - их необходимо обрабатывать, а не игнорировать.
0
|
||||||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 27.08.2015, 17:16 [ТС] | |
|
insite2012, а как это должно выглядеть в коде? я в этом плане ума не приложу.
да и там писать всего ни чего, можно?
0
|
|
|
|
|||||||
| 27.08.2015, 17:31 | |||||||
0
|
|||||||
|
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
|
|||||||
| 27.08.2015, 18:55 | |||||||
|
BozKurt, не так ли дорога операция Split, чтобы не написать парочку лишних строк кода?
а вот на 1 млн строк (может и меньше) он естественно уже вылетает с "out of memory exception".так что вариант читать построчно не так уж и плох. тем более что он по времени уступает в несколько ms.
0
|
|||||||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||||||
| 27.08.2015, 19:55 [ТС] | ||||||
|
ну и вот я такое сделал:
BozKurt, rockandroll, кстати, а почему ReadAllText, я вот построчно читаю (ReadLine), это плохо (хуже)?
0
|
||||||
|
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
|
|
| 27.08.2015, 20:04 | |
|
в данном случае мой ответ был как раз в сторону того, что тут лучше ReadLine и тебе не нужно лишний раз делать Split операцию.
...или, перечитав свой коммент, я понял что недописал. Сравнение было между тем чтобы сделать ReadAllText, а потом "сплитить" и построчной записи в лист с помощью ReadLine. так вот второе лучше в случае, как минимум, больших файлов (многострочных).
0
|
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||||||||||||||||
| 27.08.2015, 21:08 [ТС] | ||||||||||||||||
|
Вот конечный вариант, даже с описанием:
0
|
||||||||||||||||
|
Master of Orion
|
||||||
| 27.08.2015, 21:31 | ||||||
Сообщение было отмечено VLK как решение
Решение
VLK,
1) глотает исключения 2) может вернуть только коллекцию string'ов 3) может быть короче и понятнее записано стандартными средствами (не придется лезть разбираться, что за файлменеджер такой):
Вместо Rewrite просто вызывается File.WriteAllLines, которая точно также имеет перегрузку с IEnumerable<string> или более подходящая. Добавлено через 1 минуту 4) в случае исключения во время записи поток остается незакрытым.
2
|
||||||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||||||
| 27.08.2015, 22:11 [ТС] | ||||||
|
Psilon, спасибо, но как говорится нет худа без добра, за то я немного разобрался как писать обобщения, а то мои старые записи кривые.
Еще такой вопрос, а есть что то в одну строчку, создать файл если он не существует, в том числе и с папками, ну допустим у меня на M:\ нет папки data, а мне надо сделать
но если файл существует что бы с ним ни чего не сделалось. Добавлено через 1 минуту у меня собственно идея написания этого FileManager и появилась из-за того что мне надо было создавать папки еще автоматически.
0
|
||||||
|
Master of Orion
|
||||||
| 28.08.2015, 00:57 | ||||||
|
VLK, ну если вы в одном месте так делаете, то прям на месте можно. Если нет, то просто 2 строчки пишем (без своих записывальщиков) и всё
![]()
1
|
||||||
|
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
|
|||||||||||
| 28.08.2015, 07:17 | |||||||||||
|
только лучше не
1
|
|||||||||||
|
|
||||||
| 28.08.2015, 07:45 | ||||||
|
rockandroll,
1
|
||||||
| 28.08.2015, 07:45 | |
|
Помогаю со студенческими работами здесь
14
Как удалить элемент из коллекции, во время перебора этой коллекции foreach? Сделать сортировку коллекции вместо создания новой коллекции с передачей IOrderedEnumerable<T> Доступ из элемента коллекции к другим элементам коллекции Трехмерный массив неопределенной длины
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|