1 / 1 / 2
Регистрация: 03.07.2014
Сообщений: 274
1

Фильтр по первым 3 символам

18.08.2015, 11:19. Показов 2013. Ответов 15
Метки нет (Все метки)

Загружаю в листбокс список индексов. Нужно пройтись по всему списку и переместить все индексы в другой листбокс, которые попадают под фильтр из 3 первых символов.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2015, 11:19
Ответы с готовыми решениями:

Поиск слова по первым символам
Господа программисты, есть значит массив слов, каждое слово имеет n знаков и начинается с разной...

Как найти нужную строку в richTextBox по первым 10 символам этой строки ?
Здравствуйте Как найти нужную строку в richTextBox по первым 10 символам которые в начале этой...

Поиск в файле по первым символам
Есть такой текстовый файл с данными. 019Dima 412Olis 618Simon 414Sipter 311Unimiles...

Определение дублей по первым 6 символам
Господа, подскажите... Надо перебором сравнивать номера из таблицы BlackListPhones и таблицы...

15
907 / 811 / 332
Регистрация: 03.02.2015
Сообщений: 5,210
Записей в блоге: 9
18.08.2015, 11:21 2
Так а в чем проблема?
0
1 / 1 / 2
Регистрация: 03.07.2014
Сообщений: 274
18.08.2015, 12:09  [ТС] 3
Цитата Сообщение от Sanya_sa Посмотреть сообщение
а в чем проблема?
В том. что не знаю с чего начать плясать.

Добавлено через 41 минуту
Пойдем по другому. Загрузил я список в стиринглист, как сделать проверку по первым 3 символам ?
0
2079 / 1232 / 464
Регистрация: 20.12.2014
Сообщений: 3,232
18.08.2015, 12:22 4
Пройтись - это цикл по количеству элементов.
Фильтр - это if.
Первые три символа строки - это строка.Substring(0,3).
Добавить в новый список - это .Items.Add
0
1 / 1 / 2
Регистрация: 03.07.2014
Сообщений: 274
18.08.2015, 13:22  [ТС] 5
Цитата Сообщение от chumich Посмотреть сообщение
цикл по количеству элементов
Как правильно составить цикл ?
К примеру
C#
1
2
3
4
5
6
private List<string> lines = new List<string>();
string filt = "114"; наш фильтр
            if (lines == filt.Substring(0,3))
            {
                
            }
Но так показывает ошибку.
0
874 / 553 / 291
Регистрация: 21.11.2012
Сообщений: 1,551
18.08.2015, 13:26 6
C#
1
2
3
4
5
6
7
8
string filt = "114";
foreach (var str in lines)
{
     if (lines.Substring(0,3) == filt)
     {
          //to do...
     }
}
0
1 / 1 / 2
Регистрация: 03.07.2014
Сообщений: 274
18.08.2015, 15:10  [ТС] 7
Цитата Сообщение от hamin Посмотреть сообщение
lines.Substring(0,3)
Ругается на Substring
0
2079 / 1232 / 464
Регистрация: 20.12.2014
Сообщений: 3,232
18.08.2015, 15:14 8
Цитата Сообщение от inject Посмотреть сообщение
Ругается на Substring
Замените
C#
1
lines.Substring(0,3) == filt
на
C#
1
str.Substring(0,3) == filt
1
1 / 1 / 2
Регистрация: 03.07.2014
Сообщений: 274
18.08.2015, 15:21  [ТС] 9
Цитата Сообщение от chumich Посмотреть сообщение
Замените
Все замечательно. А можно как-то сделать чтобы не по 1 индексу для фильтра вводить, а к примеру 5 штук сразу ?
0
113 / 112 / 64
Регистрация: 03.06.2013
Сообщений: 582
18.08.2015, 15:30 10
Оно же будет перебирать все элементы List`a, или я не понял вопроса.
0
1 / 1 / 2
Регистрация: 03.07.2014
Сообщений: 274
18.08.2015, 15:32  [ТС] 11
Цитата Сообщение от MaxSlim Посмотреть сообщение
Оно же будет перебирать все элементы List`a, или я не понял вопроса.
Да перебирает все элементы стринглиста и сравнивает первые 3 символа.
0
2079 / 1232 / 464
Регистрация: 20.12.2014
Сообщений: 3,232
18.08.2015, 15:33 12
Лучший ответ Сообщение было отмечено inject как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
string []filt = задаете массив из любого количества элементов
foreach (var str in lines)
{
     for int i = 0 To filt.Length - 1
     {
          if (str.Substring(0,3) == filt[i])
          {
               //to do...
          }
      }
}
0
1 / 1 / 2
Регистрация: 03.07.2014
Сообщений: 274
18.08.2015, 15:49  [ТС] 13
Цитата Сообщение от chumich Посмотреть сообщение
задаете массив из любого количества элементов
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void button2_Click(object sender, EventArgs e)
        {
            List<string> code = new List<string>();
            code.Add("114");
            code.Add("113");
            code.Add("111");
            code.Add("101");
            code.Add("112");                                 
            foreach (var str in lines)
            {
                foreach (var cd in code)
                {
                    if (str.Substring(0, 3) == cd)
                    {
                        listBox2.Items.Add(str);
                    }
                }
                
            }
            label3.Text = listBox2.Items.Count.ToString();
        }
Сделлал так. Но ваш код будет на много лучше )

Добавлено через 2 минуты
Цитата Сообщение от chumich Посмотреть сообщение
for int i = 0 To filt.Length - 1
На To ругается.

Добавлено через 2 минуты
Разобрался
C#
1
2
3
4
5
6
7
8
9
10
11
12
string[] filt = new[] {"114", "111","112"};
            foreach (var str in lines)
            {
                for (int i = 0; i < filt.Length; i++)
                {
                    if (str.Substring(0, 4) == filt[i])
                    {
                        listBox2.Items.Add(str);
                    }
                }
                
            }
0
2079 / 1232 / 464
Регистрация: 20.12.2014
Сообщений: 3,232
18.08.2015, 15:52 14
Цитата Сообщение от inject Посмотреть сообщение
На To ругается.
Ну, да. Только что на vba писал. На автомате и здесь всунул. Конечно так:
C#
1
for int i = 0; i < filt.Length; i++
Добавлено через 1 минуту
Цитата Сообщение от inject Посмотреть сообщение
Разобрался
Немного не успел
Цитата Сообщение от inject Посмотреть сообщение
if (str.Substring(0, 4) == filt[i])
(0,3) наверно?
1
1 / 1 / 2
Регистрация: 03.07.2014
Сообщений: 274
18.08.2015, 15:55  [ТС] 15
Цитата Сообщение от chumich Посмотреть сообщение
(0,3) наверно?
Да. Пробовал еще 1 вариант ) Спасибо.
0
1146 / 738 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
18.08.2015, 20:47 16
Минимализм
C#
1
var filtred = lines.Where(v => filt.Any(f => v.StartsWith(f)));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2015, 20:47
Помогаю со студенческими работами здесь

Поиск в combobox по первым символам
как в combobox сделать поиск по первым символам?

Фильтр по введенным символам !!!!!!!!!!
Люди, подскажите, плз, как сделать! есть форма на основе таблицы, есть поле со списком на основе...

Ввод данных из списка по первым символам
Добрый день. Пытаюсь решить данную проблему. Пока не получается. Если кто поможешь буду очень...

Поиск слова по первым двум символам
Доброго времени суток, уважаемые форумчане! Подскажите, как с помощью регулярных выражений...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru