Как сравнить значение столбца строки в запросе LINQ? - PullRequest
0 голосов
/ 29 июля 2010

Мне нужно получить набор из числа «TOP n» строк из DataTable, где строки таблицы упорядочены по «Столбцу 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;

Но я продолжаю получать «Оператор»> не может быть применен к операндам типа «строка» и «строка» "

Есть мысли?

fuzzlog

Ответы [ 2 ]

0 голосов
/ 31 июля 2010

Йен, это помогло, спасибо.

Извините за ответ на мой вопрос после того, как вы дали решение, но мне нужно было улучшить ваш ответ, чтобы он соответствовал 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

0 голосов
/ 29 июля 2010

Будет ли это работать?

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...