新手:从IEnumerable Select中选择2个或更多信息

新手:从IEnumerable Select中选择2个或更多信息,select,ienumerable,Select,Ienumerable,新手,我的代码有问题。在此之前,代码返回字符串数组(学生名),但我需要添加学生id,而不需要重新编码整个方法。有人能帮我做这件事吗?基本上,我需要包括基于学生姓名的学生ID public Student[] GetAllStudents(string subject) { Student[] students = cache.GetAllStudents(subject); if (students == null) {

新手,我的代码有问题。在此之前,代码返回字符串数组(学生名),但我需要添加学生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;
    }
蒂亚

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;
    }

您可以在select子句中使用匿名类,即

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;
    }
students = group.Students
                  .Select(r => new { name= r.StudentName, id= r.StudentID } )
                  .ToArray();
或者只选择Student对象,因为它应该包含您需要的所有内容

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;
    }
students = group.Students.ToArray();

// doing .Select(r=>r) is redundant and can be omited
似乎您需要从studentinfo类创建Student类,您需要更改初始值设定项中的道具

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;
    }
students = group.Students
                  .Select(r => new Student { 
                         StudentName= r.StudentName, 
                         StudentID= r.StudentID 
                   })
                  .ToArray();

Student
string
的别名吗?这是怎么回事?@lc。我更新了我的答案实际上,他似乎根本不需要选择,因为他可以使用
Student
对象,因为他正在返回数组。谢谢你的即时回复。我的学生怎么会上课呢?现在这是我的学生类公共类学生{public string Name{get;set;}public int Studentid{get;set;}}@Scuttle这里的问题是我们没有看到主题类的签名。您能更新您的问题吗?以及RetrieveSubjects打算做什么?公共类学生{public string Name{get;set;}public int Studentid{get;set;}