0

初心者ですが、コードに問題があります。このコードが文字列 (学生名) の配列を返す前に、メソッド全体を再コーディングすることなく、学生 ID を追加する必要があります。誰かがそれを行う方法について私を助けることができますか? 基本的に、学生名に基づいて学生IDを含める必要があります。

ティア。

public Student[] GetAllStudents(string subject)
    { 
        Student[] students = cache.GetAllStudents(subject);

        if (students == null)
        {
            Subjects group = RetrieveSubjects(subject);

            if (group != null)
            {
                students = group.Students.Select(r => r.StudentName).ToArray();
                // I need to include also the Student ID based on the Student Name queried above.

            }
            else
            {
                students = new string[0];
            }

            cache.AddAllStudents(subject, students);
        }

        return students;
    }
4

1 に答える 1

1

select句で匿名クラスを使用できます。つまり、

students = group.Students
                  .Select(r => new { name= r.StudentName, id= r.StudentID } )
                  .ToArray();

または、必要なものがすべて揃っているはずの Student オブジェクトを選択するだけです

students = group.Students.ToArray();

// doing .Select(r=>r) is redundant and can be omited

Studentinfo クラスから Student クラスを作成する必要があるようです。初期化子の prop を変更する必要があります。

students = group.Students
                  .Select(r => new Student { 
                         StudentName= r.StudentName, 
                         StudentID= r.StudentID 
                   })
                  .ToArray();
于 2013-03-11T07:13:40.540 に答える