我有一个基于不同规则处理分数计算的模型
decimal(20)
此处提供了一些示例数据
Scoremaster
----------
Grade
MinScore
MaxScore
GradeRule
我计划的算法是这样的
A1 4.5 5 5
A2 4 4.5 5
B1 3.5 4 5
B2 3 3.5 5
C 0 3 5
A1 8 10 10
A2 6 8 10
B1 5 6 10
C 0 5 10
A1 16 20 20
A2 12 16 20
B1 8 12 20
C 0 8 20
根据输入我可以过滤到特定的等级类别。下一步是根据属性minScore和MaxScore检测得分在哪个范围内,然后返回相应的成绩,我正在努力使用Linq
答案 0 :(得分:2)
如下所示:
string FindGrade(double score,string rule)
{
List<Scoremaster> scores = (from p in dbcontext.Scoremasters
where p.GradeRule==rule && score>= p.MinScore && score<= p.MaxScore
select p).ToList();
}
希望它有所帮助。
答案 1 :(得分:1)
试试这个
public static class Extensions
{
public IQueryable<T> FindMinimum<T>(this IQueryable<T> source,string rule)
where T : YourEntityType
{
return source.Where(p => p.GradeRule==rule && score>= p.MinScore && score<= p.MaxScore);
}
}
用法像这样
var scores= db.myTable.FindMinimum("rule").ToList();