我正在尝试构建一个查询,其中有一个学生名称,然后是他所属的俱乐部的嵌套集合。我想用OrderByDescending组织这个集合。我不知道要在括号中提供什么。
public void GetStudentsClubNameRev()
{
try
{
using (SchoolContainer = new SchoolContainer())
{
var query = from student in SchoolContainer.Students
select new
{
StudentName = student.Name,
ClubName = student.StudentClubMatches
.Where(s =>s.StudentId == student.Id)
.Select(c => c.Club.Name)
.OrderByDescending(o => "Name")
};
}
}
catch (Exception ex)
{
}
}
在.OrderByDescending(o =>“Name”)中我不知道我的谓词是什么。我想说命令登上俱乐部名称的名字。但我得到错误,因为我认为我不明白它想要什么。
答案 0 :(得分:3)
选择“Club.Name”后,当前的可枚举只是一个字符串。你只需要一个传递选择器:
.Select(c => c.Club.Name)
.OrderByDescending(name => name)
答案 1 :(得分:2)
如果您在选择之前订购了OrderByDescending,您也可以这样做:
var query = from student in SchoolContainer.Students
select new
{
StudentName = student.Name,
ClubName = student.StudentClubMatches
.Where(s =>s.StudentId == student.Id)
.OrderByDescending(c => c.Club.Name)
.Select(c => c.Club.Name)
};
干杯
答案 2 :(得分:0)
要按属性排序,您应使用以下内容:
的代码:强>
.OrderByDescending(o => o.Name)