Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 3

Перебор списка List<string> на выбор нужного значения

26.09.2014, 14:43. Показов 3124. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Задача: создаю листбокс из файлов, найденных поиском. По выделению любого элемента листбокса хочу получить в соседнем чеклистбоксе список файлов, находящихся по определенному пути и соответствующих выделенному элементу листбокса. Пути получаю путем сваливания в List<string> путей к папкам, в которых лежат найденные файлы из листбокса.
Проблема: зачитываю путь через String.Join. При занесении в листбокс одного элемента проблем не возникает. При занесении в листбокс большего количества элементов получаю соответствующее количество путей и Illegal characters in path, соответственно.
Вопрос: не могу сообразить, что конкретно надо сделать, чтобы выполнить задачу. Есть предположение, что надо назначать в List<string> индексы для каждого элемента листбокса, а при щелчке по элементу зачитывать индекс и сравнивать с List и выбирать нужную строку.
Просьба не выкладывать готовое решение, а объяснить, где я что неправильно сделал и наставить на путь истинный.
Заранее благодарю.
З.Ы. Код прилагаю.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private void button1_Click(object sender, EventArgs e)
        {
            //задаю папку для поиска файлов
            FolderBrowserDialog setbrnch = new FolderBrowserDialog();
            if (setbrnch.ShowDialog() == DialogResult.OK)
            {
                prjpath.Clear();
                listBox2.Items.Clear();
                checkedListBox1.Items.Clear();
                textBox1.Text = setbrnch.SelectedPath;
                textBox1.SelectionStart = textBox1.Text.Length;
                //определяю атрибуты поиска файлов
                IEnumerable<string> pxF = Directory.EnumerateFiles(setbrnch.SelectedPath, "*.flprj", SearchOption.AllDirectories);
 
                foreach (string file in pxF)
                {
                    //собираю листбокс из найденных файлов
                    listBox2.Items.Add(Path.GetFileNameWithoutExtension(file));
                    //наполняю список путями к файлам
                    prjpath.Add(Path.GetDirectoryName(file));
                    
                }
            }
            
        }
        //определяю действие выбранного элемента
        private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            foreach (var item in listBox2.Items)
            {
                MessageBox.Show(String.Join(Environment.NewLine, prjpath));
                //зачитываю путь из списка
                DirectoryInfo prjdir = new DirectoryInfo(String.Join(Environment.NewLine, prjpath) + "\\Project\\Targets\\");
                foreach (FileInfo targets in prjdir.GetFiles())
                {
                    //собираю чеклистбокс из найденных в папке файлов
                    checkedListBox1.Items.Add(targets.Name);
                }
            }
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.09.2014, 14:43
Ответы с готовыми решениями:

Правильное использование и перебор для Dictionary<DateTime, List<string>>
Здравствуйте! есть Dictionary&lt;DateTime, List&lt;string&gt;&gt; datenote = new Dictionary&lt;DateTime, List&lt;string&gt;&gt;(); public void...

Чтение массива String и выбор нужного элемента
Ребят, всем привет. Нужна поомщь. Создал массив String с 50 элементами, в каждом элементе записана страна Европы и столица. Например:...

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

5
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
26.09.2014, 16:28
Цитата Сообщение от MrMemphis Посмотреть сообщение
создаю листбокс из файлов, найденных поиском. По выделению любого элемента листбокса хочу получить в соседнем чеклистбоксе список файлов, находящихся по определенному пути и соответствующих выделенному элементу листбокса.
Если ты уже нашёл файлы и поместил их в листбокс, то какие файлы, "находящиеся по определённому пути" ты хочешь получить, выделяя найденный файл? Сформулируй точнее
0
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 3
26.09.2014, 17:36  [ТС]
в листбоксе я получаю список файлов общего поиска. в чеклистбоксе для каждого элемента листбокса есть еще дополнительный набор файлов, расположенных по этому пути + еще.
Например: файл для листбокса находится по адресу: C:\temp\folder\1.exe; файлы для чеклистбокса - C:\temp\folder\subfolder\.
Так вот: если загружаю в листбокс один файл - все в порядке. Если больше, чем 1 - он хавает все пути для чеклистбокса и теряется.
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
26.09.2014, 17:51
Цитата Сообщение от MrMemphis Посмотреть сообщение
файл для листбокса находится по адресу: C:\temp\folder\1.exe; файлы для чеклистбокса - C:\temp\folder\subfolder\
Почему именно так? Что должно происходить при выборе элемента в листбокс?
Цитата Сообщение от MrMemphis Посмотреть сообщение
если загружаю в листбокс один файл - все в порядке. Если больше, чем 1 - он хавает все пути для чеклистбокса и теряетс
Загружаешь в листбокс или выделяешь в листбоксе? Каша какая-то...
0
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 3
26.09.2014, 18:56  [ТС]
уже разобрался.
сейчас покажу, что хотел получить.



В левом списке - файлы проектов. В правом - файлы вокруг проекта, привязанные к нему. Проблема была в том, что я неправильно читал путь к файлам вокруг проекта. сейчас разобрался, все работает как надо.
Спасибо за отзывчивость!)
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
26.09.2014, 19:26
Ну разобрался и хорошо. Покажи, что получилось, чтобы другие могли воспользоваться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.09.2014, 19:26
Помогаю со студенческими работами здесь

Сортировка списка List<string>
Задача - Получить отсортированный список полных имен файлов. Проблема в том, что когда файлы с однотипными названиями и номером на...

Заполнение списка List<T> экземплярами string[]
Добрый день. Читаю данные с SQL-запроса и хочу заполнить список podr массивами string line. После того как добавляю line в podr,...

Dictionary<string, List<CD>> Удаление из списка
Здравствуйте! Помогите пожалуйста! Проблема заключается в том, что мне не удается из List&lt;CD&gt; удалить что либо, по определынному...

Как удалить дубликаты списка файлов из List<string>?
1 - Собираю список файлов в List&lt;string&gt; После показываю его на консоль: private static readonly List&lt;string&gt;...

Привязка к одному элементу списка List<string> с помощью Binding
Выручаете. Есть public List&lt;string&gt; в классе. Можно ли как-то привязаться к одному элементу списка только binding'ом?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
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 и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru