使用LINQ我必须通过"Score"值选择List of ordered(asc)的前10%.该模型具有Id和Score.
例:
如果我有100个项目,并且每个项目都有一个分数,我希望它们按分数(asc)排序,并且只选择前10名(10%)
到目前为止我做了什么:
var orderedList = (from Emps in db.Emps
orderby Emp.Score ascending
select Emp);
Run Code Online (Sandbox Code Playgroud)
然后我必须计算orderedList并计算10%并进行另一个查询.如果可能的话,我希望所有人都在同一个查询中.
我该怎么做呢?
您可以使用Take(int count)扩展方法:
var result = values.OrderBy(t => t.Score).Take(values.Count * 10 / 100);
Run Code Online (Sandbox Code Playgroud)
或者,如果您想要始终至少使用1个值,您可以使用Math.Ceiling:
var result = values.OrderBy(t => t.Score).Take((int) Math.Ceiling(values.Count * 10 / 100d));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1095 次 |
| 最近记录: |