/// <summary> /// Create a filtered view for <paramref name="source"/>. /// </summary> /// <typeparam name="T">The type of the elements in the source collection.</typeparam> /// <param name="source">The source observable.</param> /// <param name="filter">The predicate to filter by.</param> /// <returns>A <see cref="ReadOnlyFilteredView{T}"/>.</returns> public static ReadOnlyFilteredView <T> AsReadOnlyFilteredView <T>( this IObservable <Maybe <IEnumerable <T> > > source, Func <T, bool> filter) { Ensure.NotNull(source, nameof(source)); Ensure.NotNull(filter, nameof(filter)); return(source.AsReadOnlyView() .AsReadOnlyFilteredView(filter, leaveOpen: false)); }
/// <summary> /// Create a filtered view for <paramref name="source"/>. /// </summary> /// <typeparam name="T">The type of the elements in the source collection.</typeparam> /// <param name="source">The source observable.</param> /// <param name="filter">The predicate to filter by.</param> /// <returns>A <see cref="ReadOnlyFilteredView{T}"/>.</returns> public static ReadOnlyFilteredView <T> AsReadOnlyFilteredView <T>( this IObservable <Maybe <IEnumerable <T>?> > source, Func <T, bool> filter) { if (source is null) { throw new ArgumentNullException(nameof(source)); } if (filter is null) { throw new ArgumentNullException(nameof(filter)); } return(source.AsReadOnlyView() .AsReadOnlyFilteredView(filter, leaveOpen: false)); }