示例#1
0
 /// <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));
        }