/ダイナミックlinqソートIEnumerable<T>
IQueryable<T>
IEnumerable<T>
動的linqは並べ替えに便利な構文を提供しますが、同様の関数は
、IQueryable<T>
、IEnumerable<T>
、IEnumerable<T>
関数を追加できます:OrderBy
OrderByDescending
ThenBy
ThenByDescending
と一緒に
<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>を使用します
これらの拡張機能をで使用するには、IEnumerable<T>
拡張方法を使用して:
IEnumerable<T>
AsQueryable
dynamic sorting IQueryable
<code class="language-csharp">IEnumerable<T> items = ...; IQueryable<T> queryableItems = items.AsQueryable(); var orderedItems = queryableItems.OrderBy("Property");</code>基本的な並べ替え方法に加えて、
動的並べ替えを使用して関数をさらに拡張することもできます。これは例です:
以上が「ienumerable」および「ienumerable」の動的linq順序を実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。