[英]Getting Rounded Values in the final result of Linq Query
如何修改下面的linq查询,以便我可以得到一个圆形的数值。
var result=GetStudentsWithTheirMarks()
.OrderByDescending(x => Math.Round(x.PercentageScore)).Take(5)
.OrderBy(x => x.PercentageScore);
请忽略两个order by子句的存在,因为这样做是出于某种目的。 GetStudentsWithThierMarks返回带有FirstName和PercentageScore的学生列表。 我相信上面的查询Math.Round仅适用于在操作顺序期间,因此最终结果仍包含小数位的值,而我只想看到带有整数值的舍入数字。 我只是无法弄清楚语法。
你只需要一个Select
:
var result= GetStudentsWithTheirMarks()
.OrderByDescending(x => Math.Round(x.PercentageScore))
.Take(5)
.OrderBy(x => x.PercentageScore)
.Select(x => Math.Round(x.PercentageScore));
您可以将此值存储为匿名类型:
var result = GetStudentsWithTheirMarks()
.Select(s => new
{
Student = s,
RoundedPercentageScore = Math.Round(s.PercentageScore)
})
.OrderByDescending(x => x.RoundedPercentageScore )
.Take(5)
.OrderBy(x => x.Student.PercentageScore);
现在您可以通过以下方式访问它:
foreach(var x in result)
Console.WriteLine("RoundedPercentageScore: " x.RoundedPercentageScore);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.