Bry*_*yan 3 linq sorting sql-order-by indexof
我的代码中有一行正在对一堆字符串进行排序。正在排序的项目是数据库查询的结果,该查询带回了一堆标题,其中搜索短语位于标题列和关键字列中。我想按搜索短语的第一次出现对它们进行排序,但是当搜索短语不在标题中时,它们的索引为 -1 并且它们被放在顶部。我想要在底部标题中没有搜索短语的结果。
q = "orange";
IQueryable.OrderBy(a => a.title.IndexOf(q));
Run Code Online (Sandbox Code Playgroud)
问题是它-1被解释为一个较低的数字,因此它们被推到了结果的前面。而是将-1(又名未找到)更改为最大可能的数字并将元素推到后面
q = "orange";
IQueryable.OrderBy(a => {
var index = a.title.IndexOf(q);
return index < 0 ? Int32.MaxValue : index; });
Run Code Online (Sandbox Code Playgroud)