LINQ如何制作BETWEEN条件

时间:2015-10-14 04:01:38

标签: c# linq

我有一个基于不同规则处理分数计算的模型

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

2 个答案:

答案 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();