Ich habe ein IQueryable, das nach einer Bedingung geordnet ist. Jetzt möchte ich die Position eines bestimmten Elements in diesem IQueryable wissen. Gibt es einen linq-Ausdruck, um das zu bekommen? Angenommen, es gibt 10 Elemente in IQueryable und das 6. Element entspricht einer Bedingung, ich möchte die Zahl 6 erhalten.
Wählen Sie zuerst jedes Element mit seinem Index aus, filtern Sie dann die Elemente und extrahieren Sie schließlich den ursprünglichen Index:
%Vor%Testbett:
%Vor%Ausgabe:
%Vor% Sie könnten etwas wie query.TakeWhile(x => !matchesCondition(x)).Count()
verwenden, obwohl das die obigen Werte auflistet, die möglicherweise nicht Ihren Vorstellungen entsprechen.
Sie können auch die Verson der Funktion "Where" verwenden, die den Auflistungsindex als Parameter für die Prädikatfunktion enthält. Weitere Informationen finden Sie MSDN .
%Vor%Die Version könnte zu einer leeren Liste führen, wenn kein sechstes Element vorhanden ist. Auch dies wertet die WHERE-Klausel nicht aus, bis Sie über das Ergebnis iterieren.
Tags und Links c# linq iqueryable