Heim >Backend-Entwicklung >C++ >So implementieren Sie dynamische linq orderby auf `iQueryable` und` iEnumerable`?
Dynamic linq orderBy
IQueryable<T>
verwenden
IEnumerable<T>
Wenn Sie LINQ verwenden, sortieren Sie häufig die Ergebnisse. LINQ bietet und Datenquellen betreiben, nicht OrderBy
Datenquellen. OrderByDescending
IQueryable<T>
Um die Datenquelle zu sortieren, müssen Sie die Methode IEnumerable<T>
verwenden, um sie in
oder IEnumerable<T>
anwenden können. Die Umwandlung in ist jedoch nicht immer machbar oder effizient. AsQueryable
IQueryable<T>
implementieren Sie OrderBy OrderBy
OrderByDescending
Das folgende Codefragment liefert die Implementierung der IQueryable<T>
Datenquelle
IEnumerable<T>
Diese Implementierung wird in den angegebenen Attributpfad in einen einzelnen Attributnamen unterteilt, und eine Reflexion wird verwendet, um einen Expressionstaum zu erzeugen. IEnumerable<T>
OrderBy
integriertes dynamisches linq OrderByDescending
<code class="language-csharp">public static IOrderedEnumerable<T> OrderBy<T>( this IEnumerable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderBy"); } public static IOrderedEnumerable<T> OrderByDescending<T>( this IEnumerable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderByDescending"); } static IOrderedEnumerable<T> ApplyOrder<T>( IEnumerable<T> source, string property, string methodName) { // 此处省略部分代码,因为原代码不完整且存在错误,无法直接运行。需要补充完整的代码逻辑才能实现动态排序。 }</code>
In diesem Beispiel verwenden OrderBy
und OrderByDescending
Methoden dynamische Datenquellen und Attributpfade als Eingabe und die
Mit dieser Integration können Sie bei der Sortierung dynamischer Datenquellen eine expressive Grammatik verwenden, um die Abfrage mit komplexen Rändern einfacher zu schreiben. Es ist zu beachten, dass die Implementierungsdetails der -Kläufe im Originaltext nicht bereitgestellt werden und die entsprechende dritte Bibliothek implementiert oder verwendet werden muss. Darüber hinaus ist die -Methode im ursprünglichen Code unvollständig, und die vollständige Codelogik muss ergänzt werden, um eine dynamische Sortierfunktion zu erzielen.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie dynamische linq orderby auf `iQueryable` und` iEnumerable`?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!