Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 704

BindingList<T> поиск инекса строки с частичным совпадением значения

11.04.2016, 17:07. Показов 987. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У мня имеется 2 колонки в BindingList - x0 и x1, в колонке x0 мне нужно найти известное значение и вернуть индекс строки, где оно было найдено, при этом совершенно по барабану что находится в x1. Как это сделать?

Пробую что-то сделать с методом IndexOf, но для него надо точное совпадение, а не частичное. Как можно игнорировать значения отдельных колонок и как вообще это сделать с помощью готовых методов?

Добавлено через 56 минут
Я умею только обычным способом это делать...

C#
1
2
3
4
5
6
7
int j, bl2c;
bl2.Clear(); bl2.Add(new D2 { x0 = bl1[0].x0, x1 = 1 });
for (int i = 1; i < bl1.Count; ++i) {
    bl2c = bl2.Count;
    for (j = 0; j < bl2c; ++j) if (bl1[i].x0 == bl2[j].x0) { bl2[j].x1++; break; }
    if (j == bl2c) bl2.Add(new D2 { x0 = bl1[i].x0, x1 = 1 });
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2016, 17:07
Ответы с готовыми решениями:

Поиск на листе с частичным совпадением
Доброго времени, суток! Подскажите, почему у меня не работает find??? Ниже код и пример Sub ЗагрузкаСпискаНомеровExcel() ...

Поиск через textbox c частичным совпадением
Привет всем, помогите реализовать нормальный поиск с частичным совпадением введенного в textbox Вот код TextBoxа который ищет в...

Запрос на поиск с частичным совпадением и 4 переменными
Доброго времени суток, товарищи, ломаю голову и не знаю как сделать - в общем у меня есть 4 поля для ввода (не обязательно что бы все были...

1
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 704
13.04.2016, 20:59  [ТС]
Разобрался, короче оно того не стоит, делать как-то так надо.
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
42
43
44
public class D2 : IComparable, IEquatable<D2> {
    public ArrayList ArrList = new ArrayList();
    private Int16?[] Value = new Int16?[2];
 
    public D2(Int16? X0, Int16? X1) { Value[0] = X0; Value[1] = X1; ArrList.Add(Value); }
    public D2() { Value[0] = null; Value[1] = null; ArrList.Add(Value); }
    private Int16?[] ValA { get { return Value; } set { Value = value; } }
    public Int16? x0 { get { return ValA[0]; } set { ValA[0] = value; } }
    public Int16? x1 { get { return ValA[1]; } set { ValA[1] = value; } }
    public void Add(Int16? X0, Int16? X1) { Value[0] = null; Value[1] = null; ArrList.Add(Value); }
    
    public int CompareTo(object obj) {
        var x = obj as D2;
        if (x == null || x.x0 == null) return 1;
        if (x0 == null && x.x0 == null) return 0;
        if (x0 == null) return -1;
        return x0.Value.CompareTo(x.x0.Value);
    }
    public bool Equals(D2 x) { return x0 == x.x0; }
    public override bool Equals(Object obj) { var x = obj as D2; return x0 == x.x0; }
    public override int GetHashCode() { return this.x0.GetHashCode(); }
}
 
private void tsmiRun_Click(object sender, EventArgs e) {
    //...
    
    int Res; bl2.Clear(); bl2.Add(new D2(bl1[0].x0, 1));
    if (tsmiSort.Checked) {
        for (int i = 1; i < bl1.Count; ++i) {
            Res = bl2.ToList().BinarySearch(new D2(bl1[i].x0, null) );
            if (Res > -1) bl2[Res].x1++;
            else bl2.Add(new D2(bl1[i].x0, 1));
        }
    }
    else {
        for (int i = 1; i < bl1.Count; ++i) {
            Res = bl2.IndexOf(new D2(bl1[i].x0, null));
            if (Res == -1) bl2.Add(new D2(bl1[i].x0, 1));
            else bl2[Res].x1++;
        }
    }
    
    //...
}
или вот так
C#
1
2
3
4
5
6
7
8
9
10
11
12
bl2.Clear(); bl2.Add(new D2(bl1[0].x0, 1));
if (tsmiSort.Checked) 
    for (int i = 1; i < bl1.Count; ++i)
        if (bl1[i].x0 == bl2[bl2.Count - 1].x0) bl2[bl2.Count - 1].x1++;
        else bl2.Add(new D2(bl1[i].x0, 1));
else {
    for (int j, i = 1; i < bl1.Count; ++i) {
        for (j = 0; j < bl2.Count; ++j)
            if (bl1[i].x0 == bl2[j].x0) { bl2[j].x1++; break; }
        if (j == bl2.Count) bl2.Add(new D2(bl1[i].x0, 1));
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2016, 20:59
Помогаю со студенческими работами здесь

RowFilter с частичным совпадением
Коллеги, приветствую! Собственно вопрос... Какой код позволит сделать выборку с частичным совпадением? Код ниже позволяет выбрать...

Фильтр свободной подформы по текстовому полю с частичным совпадением
Уважаемые форумчане! Есть у меня форма с несколькими свободными подформами. Нужно сделать фильтр подформы по текстовому полю с...

Изменение строки в BindingList
Как можно изменить значение необходимой строки в BindingList? добавление и удаление ниже, а с изменением тяжко BindingList&lt;User&gt;...

Как сделать что бы брала значения из BindingList (XML) файла и заполняла таблицу HTML
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Поиск значения и перемещение строки
Ребята, на вас вся надежда!!!:cry: Не получается записать макрос. В таблице необходимо найти значение, которое указывается в ячейке...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru