특정 조건을 기반으로 학생 목록을 필터링하는 C# 메서드를 만들었습니다.여러 개의 조건이있는 forEach 내부의 목록 필터링
처음으로 학생 목록에 초기 필터 조건을 적용한 후 채우기 위해 filteredstudents
목록을 생성했습니다.
filteredstudents
에 필터를 적용한 후 채울 다른 목록 filteredstudentsWithUnits
을 생성하지만, 방법을 찾아 올 수 없었다.
다른 필터 조건이 있기 때문에 누군가 제안 할 수 있습니까? 그래서 나는 실제로 여러 목록을 만들고 싶지 않습니다.
private List<StudentDTO> _validateStudents(List<StudentDTO> students)
{
List<StudentDTO> filteredstudents = new List<StudentDTO>();
foreach (StudentDTO student in students)
{
if (student.age != null && student.status != "DEL")
filteredstudents.Add(student);
else
_log("create log");
}
List<StudentDTO> filteredstudentsWithUnits = new List<StudentDTO>();
foreach (StudentDTO student in filteredstudents)
{
bool valid = true;
foreach (SubjectTypes subjectType in student.SubjectTypes)
{
string value1 = subjectType.SubjectItem.Select(x => x.value1).First();
Guid StId = _context.Items.Where(x => x.Name == value1).FirstOrDefault();
if (StId != null)
valid = true;
else
{
valid = false;
_log("create log");
}
}
if (valid)
filteredstudentsWithUnits.Add(student);
}
return filteredstudentsWithUnits;
}
Linq에, 당신은 정말 좋은 짧은 버전 만 문제를 보인다 – SJFJ