用于执行"Between"的Linq表达式

The*_*eek 3 c# linq between

在SQL中,您可以编写一个查询,该查询在类型为'nvachar'的列上执行介于两者之间,并且只返回指定的最小值和最大值之间的所有行.

例如,

Table (Id:Int, Name:nvarchar):

Contents:
1, Annie
2, Bill
3, Frank
4, Phil
5, Ted

Select * where Name Between 'Frank' and 'Ted'

Should return Frank, Phil, and Ted.
Run Code Online (Sandbox Code Playgroud)

有没有办法用linq做到这一点,或者我将不得不创建自定义查询并执行它?我见过的唯一例子涉及日期或整数,这使得它非常容易(可以使用比较运算符,如<,>等).

Jon*_*eet 6

你会CompareTo改用:

var query = from name in names
            where name.CompareTo("Frank") >= 0 &&
                  name.CompareTo("Ted") <= 0
            select name;
Run Code Online (Sandbox Code Playgroud)

使用><独占(即排除Frank和Ted).

基本上它与使用<和使用相同>,但使用方法:)