Ich habe eine Liste von Ints, die die richtigen Werte in der richtigen Reihenfolge darstellt. Meine zweite Liste von Ints sind Benutzerwerte, die in der richtigen Reihenfolge oder inkorrekt sein können. Ich möchte diese Listen in eine neue Liste aufnehmen, aber die Reihenfolge der richtigen Liste beibehalten.C# Join zwei int-Listen, wo Werte gleich sind und Werte sind bei gleichem Index
Beispiel:
var correctPositions = _answerActualPositions.Where(x => x != -1);
var userAnswerPositions = _answerViews.Where(x => x.Answered)
.Select(answerView => _answerViews.IndexOf(answerView));
Dies sind die Werte:
- CorrectPositions [4], [1]
- userAnswerPositions [3], [4]
Beide Listen haben das Element 4, aber userAnswerPositions muss 4 bei Element 0 haben, um korrekt zu sein. Also, wenn ich eine Abfrage in C# würde ich erwarten, dass es eine neue Liste aber leer ist.
- CorrectPositions [4], [1]
- userAnswerPositions [4], [1]
Diese auf der anderen Seite mit einer neuen Abfrage würde 1 Element zurück, weil 4 in derselben ist Element für beide Listen.
Ich bin mir nicht sicher über eine nette Art der Handhabung.
Was ist das gewünschte Ergebnis? Sie möchten alle aus userAnswerPositions auswählen, aber in der Reihenfolge der correctPositions (wenn sie drin ist)? –
@TimSchmelter Ich möchte die beiden Listen in eine 3. Liste einbinden, aber die Ints sind gleich und in der gleichen Position. Ich bin mir nicht sicher, ob ich es überkomplizieren kann. –
Es scheint, dass Sie zwei Liste von Werten konfrontiert werden, um eine Liste von (z. B.) Testantworten durch einen Benutzer mit der Liste der tatsächlichen richtigen Ergebnisse zu überprüfen .. aber wenn es ist, ist es nicht sehr klar, Ihre Vorgehensweise um dieses Problem zu lösen .. Wenn Sie einfach eine Liste nach der anderen anhand der Position ihrer Elemente verifizieren möchten, sollten Sie sie einfach mit einem Join verknüpfen, wie Sie es anhand ihrer Indizes und Werte angeben –