Linq where sublist contains a partial value
c#, entity-framework, linq
Solution
Use Enumerable.Any to check if any of device settings matches some condition:
var results =
devices.Where(d => d.Settings.Any(s => s.value.Contains(searchTerm)));
If you also need to check for Id, then add this condition to predicate of Any:
d.Settings.Any(s => s.Id == 1 && s.value.Contains(searchTerm))
NOTE: You can do this filtering on server side if you will not save devices into list.
Problem
I want to search for items where the search term exists within one of its sub items For example I have a device with settings, I want a list of all devices which have a DeviceSetting with `Id=1` and `value.Contains("test")`. I am using LINQ to SQL so if anything can be done to keep this fast (and avoid projection to POCO) that would be great How do I achieve this? ``` Device { List<DeviceSetting> Settings { get; set; } } DeviceSetting { int Id; string value; } var devices = new List<Device>(); // populated from EF var search = "test"; var results = devices.Where(d => d.Settings.Contains(searchTerm)); ```