Entity framework 例如: 是的,这是可能的,但你需要更好地说明你所期待的结果是的,这是可能的。首先将逻辑简化为单个if,然后将循环转换为LINQWhere+ToList。是的,但它看起来相当繁忙。它还将增加额外的迭代。是的,这是可能的,但您需要更好地指定您正在寻找的结果是的

Entity framework 例如: 是的,这是可能的,但你需要更好地说明你所期待的结果是的,这是可能的。首先将逻辑简化为单个if,然后将循环转换为LINQWhere+ToList。是的,但它看起来相当繁忙。它还将增加额外的迭代。是的,这是可能的,但您需要更好地指定您正在寻找的结果是的,entity-framework,linq,lambda,linq-to-sql,linq-to-entities,Entity Framework,Linq,Lambda,Linq To Sql,Linq To Entities,例如: 是的,这是可能的,但你需要更好地说明你所期待的结果是的,这是可能的。首先将逻辑简化为单个if,然后将循环转换为LINQWhere+ToList。是的,但它看起来相当繁忙。它还将增加额外的迭代。是的,这是可能的,但您需要更好地指定您正在寻找的结果是的,这是可能的。首先将逻辑简化为单个if,然后将循环转换为LINQWhere+ToList。是的,但它看起来相当繁忙。它还将添加额外的迭代。这将不会产生相同的结果result@Fredou你为什么这么说?什么情况下会有不同的结果?我想如果在同一件

例如:


是的,这是可能的,但你需要更好地说明你所期待的结果是的,这是可能的。首先将逻辑简化为单个
if
,然后将循环转换为LINQ
Where
+
ToList
。是的,但它看起来相当繁忙。它还将增加额外的迭代。是的,这是可能的,但您需要更好地指定您正在寻找的结果是的,这是可能的。首先将逻辑简化为单个
if
,然后将循环转换为LINQ
Where
+
ToList
。是的,但它看起来相当繁忙。它还将添加额外的迭代。这将不会产生相同的结果result@Fredou你为什么这么说?什么情况下会有不同的结果?我想如果在同一件事情上的话,我得到了双倍的回报,再看一次就知道了sense@Fredou你错过了第一部分中的“!”吗?@JamesCurran,
主题
是一个集合,根据OPS,它不会产生相同的结果result@Fredou你为什么这么说?什么情况下会有不同的结果?我想如果在同一件事情上的话,我得到了双倍的回报,再看一次就知道了sense@Fredou你错过了第一部分的“!”吗?@JamesCurran,
subjects
是根据OP@JamesCurran你说得对,我删除了这个建议。谢谢大家!@你说得对,我删除了这个建议。非常感谢。
var filteredStudent = new List<Student>();
string description = "Managing the Course";
foreach (var student in students)
{
    if (student.subjetcs.Any(x => x.Sylabus.Name.Contains("Critical")))
    {
        if (student.subjetcs.Any(x => x.Sylabus.Name.Contains("Critical") &&
                                      description.Contains(x.Description)))
        {
           filteredStudent.Add(student);
        }
    }
    else
    {
        filteredStudent.Add(student);
    }
}
var filteredStudent = students
                  .Where(s=>!s.subjects.Any(x => x.Sylabus.Name.Contains("Critical") || 
                            description.Contains(x.Description)))
                  .ToList();
var filteredStudent = students
                  .Where(s=>s.subjects
                    .Any(x => 
                        description.Contains(x.Description) ||
                        !x.Sylabus.Name.Contains("Critical"))) 
                  .ToList();
var filteredStudent = students
              .Where(s=>!s.subjects.Any(x => 
                          x.Sylabus.Name.Contains("Critical")
                          ?  !description.Contains(x.Description)
                          : false)
              .ToList();
var filteredStudent = students
              .Where(s=>!s.subjects.Any(x => 
                          x.Sylabus.Name.Contains("Critical")
                          &&  !description.Contains(x.Description))
              .ToList();
    students.ToList().ForEach(s => filteredStudent.Add(s));
    students.Where(s => s.subjetcs.Any(x => x.Sylabus.Name.Contains("Critical") && description.Contains(x.Description)))
      .ToList().ForEach(s => filteredStudent.Add(s));
    var list = new List<Stundent>();
    list.AddRange(studnets.Where(s => s.subjetcs.Any(x => x.Sylabus.Name.Contains("Critical") && description.Contains(x.Description)));
    list.AddRange(studnets.Where(s => s.subjetcs.All(x => !x.Sylabus.Name.Contains("Critical")));
    list.ForEach(x => filteredStudent.Add(x));
    students.Where(s => s.subjetcs.Any(x => x.Sylabus.Name.Contains("Critical") && description.Contains(x.Description)) || s.subjetcs.All(x => !x.Sylabus.Name.Contains("Critical"))
      .ToList().ForEach(s => filteredStudent.Add(s));