Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan pesanan linq dinamik untuk `ienumerable` dan` ienumerable`?

Bagaimana untuk melaksanakan pesanan linq dinamik untuk `ienumerable` dan` ienumerable`?

Susan Sarandon
Susan Sarandonasal
2025-02-02 22:36:12113semak imbas

How to Implement Dynamic LINQ Ordering for `IEnumerable` and `IEnumerable`?

/ jenis linq dinamik IEnumerable<T> IQueryable<T>

kaedah pengembangan

IEnumerable<T> Walaupun LINQ dinamik menyediakan sintaks mudah untuk penyortiran , fungsi yang sama tidak digunakan secara langsung untuk

. Untuk menyelesaikan masalah ini, anda boleh menggunakan kaedah lanjutan berikut untuk menambah

, IQueryable<T>, IEnumerable<T> dan IEnumerable<T> fungsi: OrderBy OrderByDescending ThenBy Gunakan ThenByDescending

bersama -sama dengan
<code class="language-csharp">public static IOrderedQueryable<T> OrderBy<T>(
    this IQueryable<T> source,
    string property)
{
    return ApplyOrder<T>(source, property, "OrderBy");
}

public static IOrderedQueryable<T> OrderByDescending<T>(
    this IQueryable<T> source,
    string property)
{
    return ApplyOrder<T>(source, property, "OrderByDescending");
}

public static IOrderedQueryable<T> ThenBy<T>(
    this IOrderedQueryable<T> source,
    string property)
{
    return ApplyOrder<T>(source, property, "ThenBy");
}

public static IOrderedQueryable<T> ThenByDescending<T>(
    this IOrderedQueryable<T> source,
    string property)
{
    return ApplyOrder<T>(source, property, "ThenByDescending");
}

static IOrderedQueryable<T> ApplyOrder<T>(
    IQueryable<T> source,
    string property,
    string methodName)
{
    // 为简洁起见,省略实现
}</code>
3

Gunakan IEnumerable<T> penyortiran dinamik

Di samping kaedah penyortiran asas, anda juga boleh menggunakan IEnumerable<T> penyortiran dinamik untuk mengembangkan lagi fungsi. Ini adalah contoh: AsQueryable

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pesanan linq dinamik untuk `ienumerable` dan` ienumerable`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn