Как проверить несколько datagridview на наличие одинаковых строк?
Здравствуйте!
У меня имеется форма и на ней у меня есть 3 datagridview: 1ый, 2ой и 3ий
В первом находятся все программы из реестра, во втором программы которые находятся в белом списке, в третьем - те, что находятся в черном списке.
И я хочу сделать следующее: загружается 1ый datagridview, и если какие-то строки из него есть во 2ом и 3ем datagridview то в 1ом их окрашивать в какой-то цвет.
Желательно чтобы был пример кода
Заранее спасибо.
Надо не DataGridView проверять, а в классе бизнес-логики всё это делать. В UI выводить коллекции, которые умеют уведомлять о своём изменении UI, чтобы он обновлялся, как и элементы коллекции должны уметь уведомлять UI об изменений значений своих свойств. Судя по всему, речь про Windows Forms.
Андрей Фомин, в белом списке всё, что не в чёрном? Чёрный список, видимо, хранится как-то отдельно от основного списка программ в реестре. Там можно сделать всё сильно по-разному. Список программ и чёрный список вряд ли будут содержать больше 30 элементов, здесь подойдёт даже самый наивный алгоритм.
Борис Животное, Общий список программ, белый и черный хранятся в разных ветках реестра и изменяются пока пользователь их редактирует
Отвечая на ваш вопрос: в белом списке всё, что не в чёрном? - Да
Андрей Фомин, если у одной записи о программе из реестра есть какое-то постоянное и уникальное значение, вроде какого-нибудь уникального идентификатора, то чёрный список может представлять из себя HashSet{UID}. Загрузили мы основной список программ (в память, не в UI), далее пробегаемся по всему этому списку (если список полностью находится в памяти, а не подгружается при скролле) и проверяем, если HashSet{UID}.Contains(item[i].Uid), то поменять свойство у этого элемента, которое даёт сигнал UI в какой цвет покрасить фон элемента.