Я бы использовал методList<PatientMeds> patientMedsList = PatientsMeds.PatientMedsList .Where(x => x.Patient.IsSelected) .ToList(); patientMedsList.ForEach(p=> p.Meds.RemoveAll(m=>!m.IsSelected));
PatientMeds
var selectedPatientsWithSelectedMeds = patientMedsList.Where(p => p.IsSelected)
.Select(p => new PatientMeds
{
Patient = p.Patient,
Meds = p.Meds.Where(m => m.IsSelected).ToList()
})
.ToList();