Linq и Методы расширения не должны пытаться решить все проблемы. Однако, если вам действительно нужно все в одном утверждении, вы можете использовать это.
AList.SelectMany(x => x.body.positions)
.ToList()
.ForEach(
position =>
position.NameOfWeek = weekList.Where(x => x.NameOfWeek == position.NameOfWeek)
.Select(y => y.NameOfWeek)
.FirstOrDefault());
Примечание : Если это натолкнулось на мой стол для проверки кода, отправьте его обратно с запиской: «Мои ГЛАЗА !!! Пожалуйста, рефакторинг.
По сути, ваш оригинальный foreach
легко читается и поддерживается. Не пытайтесь быть слишком модным, и вы можете легко увидеть, что происходит. Эти качества намного важнее, чем все в одном утверждении.