У меня момент "дух", когда кажется, что все должно быть прямо, но я не могу понять, что это правильно. У меня есть простая коллекция:
Category Name
---> List<Category> (Children of this category)
Я хочу, чтобы пользователь мог фильтровать на основе Category.Name при сохранении иерархии. Так, например.
My Category
---> Category.Name, "ABC"
---> Category.Name, "123"
---> Category.Name, "CDE"
Если пользователь вводит C, фильтр должен вернуть
My Category
---> Category.Name, "ABC"
---> Category.Name, "CDE"
Моя попытка до сих пор была
var v = vm.CategoryList
.Where(p => p.CategoryItems.Any(q => q.Name.Contains(SearchText)));
Это отфильтрует и вернет мне все имена категорий, которые содержат элементы категорий, которые соответствуют фильтру, но я все еще получаю весь список дочерних категорий без фильтра. Чего мне не хватает?