在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执行此操作,或者我将不得不创建自定义查询并执行它?我见过的唯一例子涉及日期或整数,这使得它非常容易(可以使用比较运算符,如<,>等)。
答案 0 :(得分:6)
您可以使用CompareTo
代替:
var query = from name in names
where name.CompareTo("Frank") >= 0 &&
name.CompareTo("Ted") <= 0
select name;
使用>
和<
为独占(即排除Frank和Ted)。
基本上与使用<
和>
相同,但使用方法:)