Dynamisches Linq: Dynamische Auswahl einer spezifischen Spalte
Wenn Sie sich mit einer Klasse wie der in dem Problem bereitgestellten
-Daten
befassen, müssen während der LINQ -Operation eine bestimmte Spalte ausgewählt werden. Diese Aufgabe kann durch dynamisch erstellte Lambda -Ausdrücke erledigt werden, die an ausgewählte übergeben werden.
Aus diesem Grund die
createNewStatement
-Methode. Es empfängt eine Zeichenfolge, die den erforderlichen Feldnamen als Eingabe enthält, und konstruiert dynamisch Lambda -Ausdrücke, die die erforderliche Spalte ausführen. In dieser Methode: <:>
Erstellen Sie einen Expressionsparameter, der das an Lambda übergebene Eingangsobjekt angibt.
Verwenden Sie Expression.New - Methode, um ein neues Beispiel für
Daten - zu erstellen.
verwenden expression.split Methode, um die Eingabezeichenfolge in eine Liste einzelner Feldnamen zu unterteilen.
Verwenden Sie für jeden Feldnamen - type.getProperty die entsprechenden Attribute in der -Daten
abrufen. -
verwenden Expression.Property Der ursprüngliche Wert des Abrufattributs.
verwenden Expression.
- Verwenden Sie Expression.
Verwenden Sie schließlich expression.lambda
Erstellen Sie den Lambda -Ausdruck und kompilieren Sie ihn in geeignete Arten von Provisionen. -
Mit der Methode createNewStatement
können Sie sie mit dem erforderlichen Feldnamen als Parameter aufrufen, um eine bestimmte Spalte dynamisch auszuwählen. Wählen Sie beispielsweise - field1 und field2
Spalte: - Spalte:
Diese Methode bietet eine gemeinsame Methode, die Spalten im LINQ -Vorgang dynamisch auswählt.
Das obige ist der detaillierte Inhalt vonWie kann Dynamic linq bestimmte Spalten on-Demand auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!