Estoy escribiendo una aplicación para mi empresa y actualmente estoy trabajando en la funcionalidad de búsqueda. Cuando un usuario busca un artículo, quiero mostrar la versión más alta (que se almacena en una base de datos).números orderBy() no se ordenan correctamente C#
El problema es que la versión se almacena como una cadena en lugar de int, y cuando lo haga un OrdenarPor (q => q.Version) en los resultados, que se devuelven como
1
10
11
2
3
...
Obviamente 2 viene antes de los 10
¿existe una manera para mí para lanzar la versión como un entero o hay un IComparer sencilla por ahí? No pude encontrar nada sustancial hasta el momento.
He intentado hacer esto:
var items = (from r in results
select r).OrderBy(q => Int32.Parse(q.Version));
Esto compila pero no funciona.
me habría sugerido exactamente lo que hizo al final de su pregunta (ordenado por 'q => int .Parse (q.Version) '); ¿A qué te refieres con "no funciona"? –
Tal vez su problema está aquí: '(q => Int32.Parse (q.Version))'. ¿Debería ser '(q => Int32.Parse (q))' de acuerdo con las versiones de trabajo a continuación? – MusiGenesis
Recibo este mensaje de error: "Método 'Int32 Parse (System.String)' no tiene traducción soportada a SQL" al ver los resultados enumerados – Darcy