Ich muss in der Lage sein, die n-ten größten Zahlen in einem int
zu finden, ich habe bereits eine linq
-Anweisung, die etwas zurückgibt, aber es nicht die verwendeten Fälle, die eingerichtet sind. Die array
ist:Finden der n-größten in einem int-Array
var numbers = new[] { 5, 7, 5, 3, 6, 7, 9 };
Mein Code ist:
var result = numbers.GroupBy(x => x)
.OrderByDescending(group => group.Key)
.SkipWhile(group =>
{
n -= group.Count();
return n > 0;
})
.First()
.ToArray();
Ich verstehe nicht, warum ich nicht die erwarteten Ergebnisse zu erzielen?
result[0] == 9
result[1] == 7
Und was bekommen Sie? – zerkms
Ergebnis [0] == 7 Ergebnis [1] == 7 – Arnold
Für was 'n'? Wie auch immer, du überspringst 'n' erste Elemente, also bekommst du für 'n> 0' nicht '9'. – zerkms