我是LINQ的新手,所以请给我一些懈怠。
我有一个LINQ语句,我已将多列分组。根据搜索情况,它会根据搜索的匹配程度对每条记录进行排名。
所以第一顺序就是那样。然后我想要一个Thenby语句按FirstName命令
var ResultsListOrdered = from O in ResultsList
group O by new
{
O.FirstName,
O.LastName,
O.SSN,
O.Email,
O.Phone
} into g
orderby g.Max().ResultMatch descending
thenby g.Key.FirstName ascending
select new SearchResultViewModel
{
ID = g.Max().ID,
FirstName = ti.ToTitleCase(g.Key.FirstName.ToLower()),
LastName = ti.ToTitleCase(g.Key.LastName.ToLower()),
SSN = g.Key.SSN,
Email = g.Key.Email.ToLower(),
Phone = g.Key.Phone,
ResultMatch = g.Max().ResultMatch
};`
如果取出thenby行,LINQ语句是否有效。但只要你把它放进去就行不通。
这应该有效。任何帮助都会很棒
这是当我将鼠标悬停在它上面时显示的错误
好的,我在这里添加以下评论,因为我不能在评论中添加图片
答案 0 :(得分:6)
thenby
不是有效的关键字,请使用orderby g.Max().ResultMatch descending, g.Key.FirstName ascending
。
您可以在ThenBy运算符中看到解释:
在查询表达式语法中,orderby [first criterion],[second 标准](Visual C#)或Order By [first criterion],[second criteria(Visual Basic)子句转换为。的调用 ThenBy。
答案 1 :(得分:2)
我不相信你能以这种方式使用thenby它不是关键字而是扩展方法。为了做你想做的事,你需要这样做。
orderby g.Max().ResultMatch descending, g.Key.FirstName ascending
答案 2 :(得分:1)
使用查询语法时,您可以用逗号分隔多个排序键,而不是thenby
。