Estoy leyendo un libro de C# para principiantes, y en cada extremo del capítulo, hay ejercicios para responder en función de las lecciones abordadas.¿Es posible expresar este código en LINQ?
Uno de esos ejercicios va de esta manera: (no las formulaciones exactas)
escribir un programa que acepte un int como la longitud de la matriz, y los valores de la matriz.
A continuación, se imprimirá:
"" si la matriz no está ordenada de forma ascendente.
"" si está ordenado. Y,
"" si está ordenado, pero hay duplicados.
Ejemplo:
// Sorted
Input: 1, 2, 3, 5
Print: 1
// Not sorted
Input: 2, 1, 3, 6
Print: 0
// Sorted, but with duplicates
Input: 2, 2, 3, 7
Print: 2
No sé si mi lógica aquí es absoluta, pero de alguna manera se está trabajando,
y lo he hecho en mi manera de utilizar este código:
int arrayLength = 0;
int prev, next;
int sortStatus = 1;
Console.Write("Input array Length: ");
arrayLength = Convert.ToInt32(Console.ReadLine());
int[] ar = new int[arrayLength];
for (int x = 0; x < arrayLength; x++)
{
Console.Write("Input {0} value: ", (x+1).ToString());
ar[x] = Convert.ToInt32(Console.ReadLine());
}
for (int x = 0; x < ar.Length-1; x++)
{
prev = (int)ar[x];
next = (int)ar[x + 1];
if (next < prev)
sortStatus = 0;
if (next == prev)
sortStatus = 2;
}
Console.Write(sortStatus.ToString());
Console.Read();
¿Es posible expresar esto en LINQ? ¿Cómo?
+1 por hacer una pregunta bien estructurado, así como con ganas de saber cómo mejorar lo que ya has hecho. – RPM1984
@ RPM1984: gracias señor :) – yonan2236
Dado que el código real que contiene la lógica 'isSorted' tiene menos de 10 líneas (y debería ser realmente en su propio método), ¿realmente desea una enreverada declaración LINQ para reemplazarlo? –