List<MyObject> objects = (from a in alist
join b in blist on a.ID equals b.ID
where a.Number != 4
orderby b.Rank, a.CustomField
select a).ToList();
Run Code Online (Sandbox Code Playgroud)
这是我的查询,我想为CustomField属性使用自定义Comparer.有没有办法在双场顺序中做到这一点?
我能够做到这一点:
List<MyObject> objects = objects.OrderBy(a => a.CustomField, new MyComparer<object>())
Run Code Online (Sandbox Code Playgroud)
但我需要它按s.Rank和a.CustomField进行排序.
使用OrderBy()连同ThenBy()您的自定义comparers.
// I'm pretty sure it is not possible to specify
// your custom comparer within a query expression
List<MyObject> objects = (from a in alist
join b in blist on a.ID equals b.ID
where a.Number != 4
select new { a, b })
.OrderBy(o => o.b.Rank, new MyRankComparer())
.ThenBy(o => o.a.CustomField, new MyComparer<object>())
.Select(o => o.a)
.ToList();
Run Code Online (Sandbox Code Playgroud)
试试这个:
List<MyObject> objects = objects
.OrderBy(a => a.Rank)
.ThenBy(a =>
a.CustomField, new MyComparer<object>()
).ToList();
Run Code Online (Sandbox Code Playgroud)
它首先按Rank字段排序,然后CustomField使用自定义比较器进行排序.
| 归档时间: |
|
| 查看次数: |
4444 次 |
| 最近记录: |