Ausdrucksbaum für die Methode String.IndexOf

8

Wie soll ich den Ausdrucksbaum für string.IndexOf("substring", StringComparison.OrdinalIgnoreCase) erstellen?

Ich kann es ohne das zweite Argument arbeiten: StringComparison.OrdinalIgnoreCase . Das sind meine bisherigen Versuche:

%Vor%

Habe das auch versucht:

%Vor%

Bitte denken Sie daran, dass ich es funktioniere, wenn ich den Parameter OrdinalIgnoreCase ignoriere.

Danke

    
ashokgelal 17.08.2011, 07:27
quelle

3 Antworten

11

Ich vermute, dass es zwei Probleme gibt.

Der erste Weg besteht darin, wie Sie die Methode erhalten: Sie fragen nach einer Methode mit nur einem einzigen String-Parameter anstelle eines Parameters mit zwei Parametern:

%Vor%

Der zweite ist der Wert , den Sie angeben - er sollte der tatsächliche Wert der Konstante sein, keine Zeichenkette:

%Vor%

EDIT: Hier ist ein komplettes funktionierendes Beispiel:

%Vor%     
Jon Skeet 17.08.2011, 07:32
quelle
3

Der einfachste Weg wäre, es über ein Lambda zu erhalten:

%Vor%

Dies ist viel besser lesbar und wartbar als das manuelle Erstellen eines Ausdrucksbaums.

Ich bin ständig überrascht von der Menge an Leuten, die direkt in den manuellen Aufbau von Ausdrucksbäumen tauchen. Es gibt keine Notwendigkeit, wenn Sie den Compiler dazu bringen können, die Arbeit für Sie zu erledigen.

    
Doctor Jones 17.08.2011 09:13
quelle
0

Ich habe den Rest nicht überprüft, aber wenn nur die enum Probleme aufwirft:

%Vor%

oder

%Vor%

Und Sie haben mehr Möglichkeiten. Oder überprüfe meine Antwort hier .

Bearbeiten: Paranthese vergessen.

    
Vladimir 17.08.2011 07:34
quelle