< Summary

Information
Class: AmbientServices.Extensions.EnumerableExtensions<T>
Assembly: AmbientServices
File(s): /home/runner/work/AmbientServices/AmbientServices/AmbientServices/Extensions/EnumerableExtensions.cs
Tag: 332_35464845198
Line coverage
100%
Covered lines: 1
Uncovered lines: 0
Coverable lines: 1
Total lines: 24
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
WhereNotNull<T>(...)100%22100%

File(s)

/home/runner/work/AmbientServices/AmbientServices/AmbientServices/Extensions/EnumerableExtensions.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Linq;
 3
 4namespace AmbientServices.Extensions;
 5
 6/// <summary>
 7/// A class with extension methods for <see cref="IEnumerable{T}"/>.
 8/// </summary>
 9/// <remarks>
 10/// <pitch>Nullable-annotation ergonomics for LINQ: filter the nulls out of an enumeration of nullable items and get bac
 11/// </remarks>
 12public static class EnumerableExtensions
 13{
 14    /// <summary>
 15    /// Filters null items out of an enumerable.
 16    /// </summary>
 17    /// <typeparam name="T">The type of item in the enumerable.</typeparam>
 18    /// <param name="nullableEnum">The nullable enumeration.</param>
 19    /// <returns>An enumeration with all the null values removed.</returns>
 20    public static IEnumerable<T> WhereNotNull<T>(this IEnumerable<T?> nullableEnum)
 21    {
 322        return nullableEnum.Where(v => v != null)!; // we've explicitly checked for nulls, so we can suppress the warnin
 23    }
 24}