Вопрос в том, почему у вас даже есть List of dayofweek в значениях класса, если совпадение может быть только один день недели? Не должно ли значение тогда просто выглядеть следующим образом?
public class Value
{
public int Index { get; set; }
public DayOfWeek d { get; set; }
}
Или вы также хотите проверить, содержит ли List<DayOfWeek> DaysOfWeek
ту же самую комбинацию, с которой вы хотите сравнить, например, понедельник и воскресенье? тогда список должен содержать ровно и только понедельник и воскресенье? Или в среду, пятницу и четверг, тогда список должен содержать только эти значения, и все 3 должны присутствовать?
В любом случае, в случае, если вам нужно сравнить только одну запись, и она должна быть единственной в списке список (как вы это описали), либо переписать класс значений, как описано выше. Или вы можете проверить это так:
var filtredExercises = uRecordFields
.Where(f => f.Values.Any( v => v.DaysOfWeek.count = 1 && v.DaysOfWeek.FirstOrDefault() == dayofweek))
.ToList();
Может быть, этот подход более читабелен. Кроме того, вы могли бы добавить метод Different () перед firstordefault (), если ваш класс допускает несколько записей в один и тот же день.
Вы также можете создать метод для значений класса, который выполняет проверку для вас, и затем вы вызываете этот метод. в лямбде. Но это зависит, если естественная ответственность за проверку лежит на самом классе.