我是一个lambda表达式的初学者。
我有一个经销商列表,对于每个经销商,我都需要计算等级。
要求将等级计算分离成一个单独的方法。
所以我编写了以下两种方法,但是我无法向CalculateGrade()
方法传递参数。
public IEnumerable<Dealers> GetDealerGrades(IEnumerable<Dealers> gradeData)
{
return gradeData
.GroupBy(row => new { row.Name })
.Select(g => new Dealers
{
Name = g.Key.Name,
TotalPoints = CalculateGrade(x => Convert.ToDouble(x.RecievedPoints),
y => y.MaxPoints,
z => Convert.ToDouble(z.Weightage))
})
.ToList();
}
private double CalculateGrade(double d1, int d2, double d3)
{
return ( d1 / d2 )
* d3 == 0.00 ? 1
: d3;
}
有没有人能建议如何传递参数,或者如何传递 lambda 表达式并计算等级?非常感谢。
.GroupBy(row => new { row.Name })
可以写成.GroupBy(row => row.Name)
,不需要new
。 - xanatosg.Key.Name
更改为g.Key
。 - xanatos