Добрый день !
Имеется array в котором записаны CheckBox. Некоторые из них isChecked, некоторые !isChecked.
Мне нужно выбрать все checkbox, которые isChecked и удалить из этого array все checkBox у которых .Tag == "равен чему либо".
Я пробовал вот так:
var myTestArray = _statusCheckBoxes.Where(x => !x.Tag.Equals("New") && !x.Tag.Equals("Active") && !x.Tag.Equals("Activating"));
// тут я хотел выбрать все чексбоксы кроме тех, у которых .Tag равен (New, Active, Activating)
var xxx = myTestArray.Where(x => x.IsChecked);
// тут я выбрал из тех, которые мне нужны isSelected
Но мой запрос выборки нужных элементов не работает. Подскажите как это можно сделать или что мне нужно изменить в данном коде ?
Спасибо !
UPD.
private void checkTestMethod()
{
var myxxx =
_statusCheckBoxes.Where(
x => (x.Tag as string) != "New" && (x.Tag as string) != "Active" && (x.Tag as string) != "Activating");
var xxx = myxxx.Where(x => x.IsChecked);
foreach (var item in xxx)
{
if (item.IsChecked)
MessageBox.Show("Bla bla bla");
}
}
Старый ответ удалён, новый ответ:
Расследование в комментариях и в чате показало, что объекты в Tag имели тип не string. Поэтому для сравнения нужен был такой код:
x.Tag.ToString() != "New"
и т. д. Кроме того, проверки можно объединить:
.Where(x => x.IsChecked &&
x.Tag.ToString() != "New" &&
x.Tag.ToString() != "Active" &&
x.Tag.ToString() != "Activating")
Если Tag может быть равным null, то нужен ещё вопросительный знак:
(x.Tag?.ToString()) != "New"
и т. д.
Продвижение своими сайтами как стратегия роста и независимости