私は、以下のような生徒のリストを持つ教師のリストを持つクラスのリスト(学校で)を持つ学校と呼ばれるC#クラスを持っています。私が必要とするのは、すべての教師のすべての学生名のカンマ区切りリストです。私はどのようにlinqでこれを達成することができますか?ここ は完全なコードです:ネストされたクラスでの結合によるCsharp linqの選択
class LinqTests
{
static void Main(string[] args)
{
Debug.WriteLine("*********************************************************************");
School rw = new School();
for (int j = 0; j < 2; j++)
{
ClassInSchool sr = new ClassInSchool();
for (int i = 0; i < 2; i++)
{
sr.teachers.Add(new Teacher((i % 2), "" + i));
}
rw.classes.Add(sr);
}
var elems = rw.classes.Select(sr => sr.teachers)
.Where(l2s => l2s != null)
.Where(l2s => l2s.Any(l2 => l2.include == true));
Debug.WriteLine(JsonConvert.SerializeObject(elems, Formatting.None));
Debug.WriteLine("*********************************************************************");
}
class School
{
public List<ClassInSchool> classes;
public School()
{
classes = new List<ClassInSchool>();
}
}
class ClassInSchool
{
public List<Teacher> teachers;
public ClassInSchool()
{
teachers = new List<Teacher>();
}
}
class Teacher
{
public bool include;
public List<string> students;
public Teacher(int includeIn, string student)
{
include = Convert.ToBoolean(includeIn);
students = new List<string>();
for (int i = 0; i < 3; i++)
{
students.Add(student + i);
}
}
}
}
故障のおかげで...戻り値をもっとよく理解するのに役立ちます。 – Kiran