用于执行“Between”的Linq表达式

在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. 

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

您将使用CompareTo

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

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

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