Я пишу приложение для своей компании и в настоящее время работаю над поиском. Когда пользователь ищет элемент, я хочу отобразить самую высокую версию (которая хранится в базе данных).
Проблема в том, что версия сохраняется в виде строки вместо int, и когда я выполняю OrderBy (q => q.Version) для результатов, они возвращаются как
1
10
11
2
3
...
Очевидно, что 2 предшествует 10.
Есть ли способ для меня преобразовать версию в целое число или есть простой IComparer там? Пока я не мог найти ничего существенного.
Я пытался сделать это:
var items = (from r in results
select r).OrderBy(q => Int32.Parse(q.Version));
Это компилируется, но не работает.