Я читаю книгу C# для новичков, и на каждом конце главы есть упражнения, на которые нужно ответить, основываясь на проведенных уроках.Можно ли выразить этот код в LINQ?
Один из этих упражнений идет так: (не точные формулировки)
Напишите программу, которая будет принимать Int как длина массива, и значение для массива.
Затем напечатает:
«», если массив не отсортирован по возрастанию.
"" если отсортировано. И,
"" если сортировка, но есть дубликаты.
Пример:
// 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
Я не знаю, если моя логика абсолютна, но как-то работает,
, и я сделал это в моем пути, используя этот код:
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();
Можно ли выразить это в LINQ? Как?
+1 за вопрос хорошо структурированный вопрос, а также желая знать, как улучшить то, что вы уже сделали. – RPM1984
@ RPM1984: thank sir :) – yonan2236
Учитывая, что фактический код, содержащий логику «isSorted», имеет длину менее 10 строк (и должен действительно быть по-своему), действительно ли вы хотите, чтобы свернутый оператор LINQ заменил его? –