I am writing an app for my company and am currently working on the search functionality. When a user searches for an item, I want to display the highest version (which is stored in a database).
The problem is, the version is stored as a string instead of int, and when I do an OrderBy(q=>q.Version) on the results, they are returned like
1
10
11
2
3
...
Obviously 2 comes before 10.
Is there a way for me to cast the version as an integer or is there a simple IComparer out there? I couldn't find anything substantial thus far.
I tried doing this:
var items = (from r in results
select r).OrderBy(q => Int32.Parse(q.Version));
This compiles but doesn't work.
Int32.Parse is not supported by the LinqToSql translator. Convert.ToInt32 is supported.