Linq获取高于姓氏的项目

时间:2011-01-18 10:53:18

标签: c# silverlight linq lambda filtering

问候

我正试图找到一种方法,使用Linq-to-SQL来获取前15个记录,这些记录的姓氏更高,然后是“Jan”。

当我在SQL中使用它时,我得到的每个成员的姓氏都以字母顺序高于“Jan”的任何字母开头。

然而,使用query.Where(m=>m.LastName > "Jan")并不会令人遗憾。

任何人都知道如何实现这一目标?

2 个答案:

答案 0 :(得分:3)

你可以尝试:

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这样的东西,那可能行不通 - 我想你会得到提供商可以处理的任何比较,基本上。

答案 1 :(得分:0)

query.Where(m => m.Substring(0, 3).CompareTo("Jan") > 0);