Ich lese ein C# -Buch für Anfänger, und an jedem Ende des Kapitels gibt es Übungen, die basierend auf den behandelten Lektionen beantwortet werden.Ist es möglich, diesen Code in LINQ auszudrücken?
Eine dieser Übungen geht so: (nicht die genauen Formulierungen)
Schreiben Sie ein Programm, das ein int als Feldlänge, und die Werte für das Array akzeptiert.
Dann wird gedruckt:
"" wenn das Array nicht aufsteigend sortiert ist.
"", wenn es sortiert ist. Und,
"" wenn es sortiert ist, aber es gibt Duplikate.
Beispiel:
// 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
Ich weiß nicht, ob meine Logik hier absolut, aber irgendwie funktioniert,
und ich es in meinem Weg mit diesem Code gemacht:
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();
Ist es möglich, dies in LINQ auszudrücken? Wie?
+1 für eine gut strukturierte Frage zu stellen, sowie zu wollen wissen, wie zu verbessern, was Sie bereits getan haben. – RPM1984
@ RPM1984: Danke Herr :) – yonan2236
Angesichts der Tatsache, dass der eigentliche Code, der die 'isSorted' Logik enthält weniger als 10 Zeilen lang (und sollte eigentlich in einer eigenen Methode sein), wollen Sie wirklich eine gewundene LINQ-Anweisung zu ersetzen? –