/// <summary> /// Orders the ordered observable by a further sorting criterion descendingly. /// </summary> /// <typeparam name="T">The element type of the source and result observables.</typeparam> /// <typeparam name="TSelect">The type of the selected sorting criterion.</typeparam> /// <param name="source">The observable to sort.</param> /// <param name="selector">The selector to select the sorting criterion.</param> /// <param name="comparer">The comparer to compare the sorting criterion.</param> /// <returns>The new observable instance.</returns> public static IOrderedAsyncObservable <T> ThenByDescending <T, TSelect>(this IOrderedAsyncObservable <T> source, Func <T, TSelect> selector, IComparer <TSelect> comparer) { if (source == null) { throw new ArgumentNullException(nameof(source)); } if (selector == null) { throw new ArgumentNullException(nameof(selector)); } return(source.CreateOrderedObservable(selector, comparer, true)); }
/// <summary> /// Orders the ordered observable by a further sorting criterion ascendingly. /// </summary> /// <typeparam name="T">The element type of the source and result observables.</typeparam> /// <typeparam name="TSelect">The type of the selected sorting criterion.</typeparam> /// <param name="source">The observable to sort.</param> /// <param name="selector">The selector to select the sorting criterion.</param> /// <returns>The new observable instance.</returns> public static IOrderedAsyncObservable <T> ThenBy <T, TSelect>(this IOrderedAsyncObservable <T> source, Func <T, TSelect> selector) { if (source == null) { throw new ArgumentNullException(nameof(source)); } if (selector == null) { throw new ArgumentNullException(nameof(selector)); } return(source.CreateOrderedObservable(selector, null, false)); }