Запрос в Linq C#

396
24 января 2017, 21:02

Добрый день !

Имеется 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");
    }
}
Answer 1

Старый ответ удалён, новый ответ:

Расследование в комментариях и в чате показало, что объекты в 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"

и т. д.

READ ALSO
C# RestSharp и ASP NET Web API - передача json и файлов

C# RestSharp и ASP NET Web API - передача json и файлов

Как организовать отправку данных в формате JSON и файлов на удалённый сервер? И как правильно принять данные?

1094
Почему ошибка в таком простом коде? [требует правки]

Почему ошибка в таком простом коде? [требует правки]

В методе test ошибка при передаче параметра Only assignment, call, increment, decrement and new object expressions can be used as a statment

351
Виснет Unity при создании объекта

Виснет Unity при создании объекта

Если использовать этот код например по нажатию на боксколлайдер, то код срабатывает и объекты создаются, но мне нужно использовать этот код...

362
Linq бинарный файл

Linq бинарный файл

Провожу сериализацию в бинарник, потом эти записанные данные могут обновится и нужно сделать запись об этом в бинарникКак можно найти нужную...

335