ListT.FindIndex für mehrere Ergebnisse?

8

Sagen wir, wir haben eine Liste mit

%Vor%

Wenn ich den Index des ersten Elements, das 20 ist, erhalten möchte, würde ich

verwenden %Vor%

Aber gibt es eine Methode, die für mehrere Ergebnisse verwendet werden kann? Nehmen wir an, ich hätte gerne den Index der Elemente mit der Nummer 10.

Ich weiß, dass es eine Methode FindAll () gibt, aber das gibt mir eine neue Liste der Indizes.

Die beste (?) Methode wäre, ein Array von Indizes zu erhalten.

    
Kesandal 05.01.2013, 17:32
quelle

3 Antworten

11

Der größte Nachteil des folgenden Codes ist, dass er -1 als magische Zahl verwendet, aber im Falle von Indizes ist es harmlos.

%Vor%     
Mir 05.01.2013, 17:34
quelle
5

Eine mögliche Lösung ist dies:

%Vor%

Zuerst wählen Sie alle Elemente und deren Index aus, dann filtern Sie nach dem Element und schließlich wählen Sie die Indizes

aus

Update: Wenn Sie entweder meine oder Evas Lösung einkapseln möchten, könnten Sie etwas wie

verwenden %Vor%

Und dann würden Sie etwas wie:

verwenden %Vor%     
TimothyP 05.01.2013 17:39
quelle
2

Nur um noch eine andere Lösung zu geben:

%Vor%

Und natürlich kann es eine Erweiterungsmethode gemacht werden:

%Vor%     
Jeppe Stig Nielsen 05.01.2013 18:18
quelle

Tags und Links