Ordenar la matriz de elementos usando OrderBy

Tengo una serie de elementos y me gustaría clasificarlos en una de sus propiedades. Puedo acceder a la propiedad de elementos utilizando ” item.Fields [” FieldName “]. Value ” la propiedad se devuelve como una cadena, pero puedo convertirla en un int.

Eché un vistazo a OrderBy pero no tengo idea de cómo usarlo.

Para ser claros, OrderBy no ordenará la matriz en su lugar; devolverá una nueva secuencia que es una copia ordenada de la matriz. Si eso está bien, entonces quieres algo como:

 var sorted = array.OrderBy(item => item.Fields["FieldName"].Value); 

Por otro lado, no entiendo su comentario de que la propiedad se devuelve como una cadena, pero que puede convertirla en un int. No puede enviar cadenas a ints, debe analizarlas. Si eso es lo que quisiste decir, probablemente quieras:

 var sorted = array.OrderBy(item => int.Parse(item.Fields["FieldName"].Value)); 

Si quieres eso como una matriz, puedes llamar a ToArray() después:

 var sorted = array.OrderBy(item => int.Parse(item.Fields["FieldName"].Value)) .ToArray(); 

Alternativamente, puede usar Array.Sort si desea clasificar en el lugar, pero eso será un poco más complicado.

Utilice el método de clasificación para ordenar una matriz:

 Array.Sort(theArray, (a, b) => String.Compare(a.Fields["FieldName"].Value, b.Fields["FieldName"].Value)); 

Si no está utilizando C # 3, utiliza un delegado en lugar de una expresión lambda:

 Array.Sort(theArray, delegate(Item a, Item b) { return String.Compare(a.Fields["FieldName"].Value, b.Fields["FieldName"].Value); } ); 

(Esto también funciona con el framework 2, que la extensión OrderBy no lo hace).

Si puede usar orderby debería ser fácil, intente lo siguiente. Introduje el int.Parse aunque no es necesario, dependiendo de cómo quieras ordenar realmente.

 var sorted = array.OrderBy(item => int.Parse(item.Fields["FieldName"].Value)); 
 var sortedArray = items.OrderBy(i => i.property).ToArray(); 

Si no desea una matriz, puede dejarla desactivada, en cuyo caso tendrá un de tipo item.