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