Linq Получить предметы выше, чем фамилия - PullRequest
1 голос
/ 18 января 2011

Привет

Я пытаюсь найти способ, используя Linq-to-SQL, чтобы получить первые 15 записей, которые имеют более высокую фамилию, чем "Jan".

Когда я используюэто в SQL я получаю каждый член, фамилия которого начинается с любых букв выше «Ян» в алфавитном порядке.

Однако использование query.Where(m=>m.LastName > "Jan") не работает, к сожалению.

Кто-нибудь знает, как я могу достичьэто?

Ответы [ 2 ]

3 голосов
/ 18 января 2011

Вы можете попробовать:

query.Where(m => m.LastName.CompareTo("Jan") > 0)

В конце концов, именно так вы и пишете в обычном C #.

Не ясно, является ли это LINQ to Objects или каким-либо другим провайдером.Если это LINQ to Objects, вам следует рассмотреть возможность использования явного StringComparer.Например:

query.Where(m => StringComparer.CurrentCulture.Compare(m.LastName, "Jan") > 0)

это дает понять, какое сравнение вы хотите.Если вы используете что-то вроде LINQ to SQL, это может не сработать - я полагаю, что вы получите все виды сравнений, с которыми может справиться провайдер.

0 голосов
/ 18 января 2011
query.Where(m => m.Substring(0, 3).CompareTo("Jan") > 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...