Есть большой лист из листов, к котором примерно такая структура:
List<CatalogItems> -> List<Catalogs> -> List<SubCategories> -> List<CatalogCategories>
В каждой из них есть лист предыдущего и парам. Visible.
Написал запрос, который фильтрует и убирает все те элементы, в которых нет Visible или список пуст уровнем ниже:
CatalogCategories = CatalogCategories
.Where(x => x.SubCategories
.Any(z => z.Visible && z.Catalogs
.Any(q => q.Visible && q.CatalogItems
.Any(w => w.Visible ))))
.ToList();
Проблема в том, что он убирает запись из CatalogCategories только при условии, что все элементы листа соответствуют одному условию, а идея была в том, чтобы просто убрать любой элемент, не подходящий под него.