我有以下课程:
表格
public class Form
{
public string id { get; set; }
public IEnumerable<Section> sections { get; set; }
}
部分
public class Section
{
public int id { get; set; }
public string name { get; set; }
public bool validated { get; set; }
public IEnumerable<Question> questions { get; set; }
}
问题
public class Question
{
public int id { get; set; }
public int required { get; set; }
}
我希望能够搜索表格中每个部分中找到的问题,检查Required
是否设置为1或0,然后拉回所需的每个问题。
我真的不确定如何执行此操作。目前,我有这个:
List<Question> requiredQuestions =
root.form.sections
.Where(x => x.questions.Where(y => y.required == 1))
但是上面的这段代码给出了语法错误。我仍然发现Linq有点混乱,请有人帮忙。
答案 0 :(得分:1)
您可以使用SelectMany
来获取所有问题,然后根据required
属性进行过滤:
List<Question> requiredQuestions = root.form.sections
.SelectMany(section => section.questions)
.Where(question => question.required == 1)
.ToList();