如何比较LINQ查询中的字符串列值?

时间:2010-07-29 16:59:48

标签: linq-to-sql

我需要从DataTable中检索一组“TOP n”行,其中表行按“列X”排序,但仅当行的“列X”值大于提供的比较时值。这就是我到目前为止所做的:

EnumerableRowCollection query = from history in dt.AsEnumerable()
                                where history.Field<string>("Column X") > "Value-To-Compare")
                                orderby history.Field("Column X")
                                select history;

但我继续获得“运营商”&gt;'不能应用于'string'和'string'“

类型的操作数

有什么想法吗?

fuzzlog

2 个答案:

答案 0 :(得分:0)

这会有用吗?

EnumerableRowCollection query = from history in dt.AsEnumerable()
                                where String.Compare(history.Field<string>("Column X"), "Value-To-Compare") > 0
                                orderby history.Field("Column X")
                                select history;

答案 1 :(得分:0)

伊恩,这就是诀窍,谢谢。

很抱歉在您提供解决方案后回答我的问题,但我需要提高您的答案,使其与原始请求100%匹配。

  

...检索一组“TOP n”号   行...

完整答案应如下所示:

EnumerableRowCollection query = (
                                  from history in dt.AsEnumerable() 
                                  where String.Compare(history.Field<string>("Column X"), "Value-To-Compare") > 0 
                                  orderby history.Field("Column X") 
                                  select history
                                ).Take(n); 

其中“n”是“Top n”中指定的行数

再次感谢,

fuzzlog