私は特定の条件に基づいて学生のリストをフィルタリングするためのC#メソッドを作成しました。フィルターリストの中に複数の条件がある場合
最初に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