Выражение Linq для выполнения «Между» - PullRequest
3 голосов
/ 30 августа 2011

В 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 или мне нужно будет создать собственный запрос и выполнить его?Единственные примеры, которые я видел, включают даты или целые числа, которые делают его очень простым (можно использовать операторы сравнения, такие как <,> и т. Д.).

1 Ответ

6 голосов
/ 30 августа 2011

Вместо этого вы бы использовали CompareTo:

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

Используйте > и <, чтобы быть эксклюзивным (т.е. исключить Фрэнка и Теда).

По сути, этоаналогично использованию < и >, но с методами:)

...