From abe99a8dd4c2d9cf874111f7f1d1daddd6411d75 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Mon, 23 Mar 2020 21:37:28 -0500 Subject: [PATCH] Added an additional helper extension --- IPA.Loader/Utilities/EnumerableExtensions.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/IPA.Loader/Utilities/EnumerableExtensions.cs b/IPA.Loader/Utilities/EnumerableExtensions.cs index 3605deac..fa2978dc 100644 --- a/IPA.Loader/Utilities/EnumerableExtensions.cs +++ b/IPA.Loader/Utilities/EnumerableExtensions.cs @@ -165,7 +165,7 @@ namespace IPA.Utilities } /// - /// LINQ extension method that filters elements out of an enumeration. + /// LINQ-style extension method that filters elements out of an enumeration. /// /// the type of the enumeration /// the enumeration to filter @@ -174,7 +174,7 @@ namespace IPA.Utilities => self.Where(o => o != null); /// - /// LINQ extension method that filters elements out of an enumeration based on a converter. + /// LINQ-style extension method that filters elements out of an enumeration based on a converter. /// /// the type of the enumeration /// the type to compare to null @@ -185,7 +185,7 @@ namespace IPA.Utilities => self.Where(o => pred(o) != null); /// - /// LINQ extension method that filters elements from an enumeration of nullable types. + /// LINQ-style extension method that filters elements from an enumeration of nullable types. /// /// the underlying type of the nullable enumeration /// the enumeration to filter @@ -193,5 +193,15 @@ namespace IPA.Utilities public static IEnumerable NonNull(this IEnumerable self) where T : struct => self.Where(o => o != null).Select(o => o.Value); + /// + /// LINQ-style extension method that filters elements out of an enumeration based on a converter to a nullable type. + /// + /// the type of the enumeration + /// the type of the predicate's resulting nullable + /// the enumeration to filter + /// the predicate to select for filtering + /// a filtered enumerable + public static IEnumerable NonNull(this IEnumerable self, Func pred) where U : struct + => self.Where(o => pred(o) != null); } }