feat: add IEnumerable<T>.Choose()
This commit is contained in:
parent
3aab47e9c6
commit
a045c76140
|
@ -8,7 +8,13 @@ public static class EnumerableExtensions
|
||||||
{
|
{
|
||||||
public static IEnumerable<T> ConditionalConcat<T>(this IEnumerable<T> enumerable, bool isConditionValid, IEnumerable<T> second) =>
|
public static IEnumerable<T> ConditionalConcat<T>(this IEnumerable<T> enumerable, bool isConditionValid, IEnumerable<T> second) =>
|
||||||
!isConditionValid ? enumerable : enumerable.Concat(second);
|
!isConditionValid ? enumerable : enumerable.Concat(second);
|
||||||
|
|
||||||
public static IEnumerable<T> ConditionalWhere<T>(this IEnumerable<T> enumerable, bool isConditionValid, Func<T, bool> pred) =>
|
public static IEnumerable<T> ConditionalWhere<T>(this IEnumerable<T> enumerable, bool isConditionValid, Func<T, bool> pred) =>
|
||||||
!isConditionValid ? enumerable : enumerable.Where(pred);
|
!isConditionValid ? enumerable : enumerable.Where(pred);
|
||||||
|
|
||||||
|
public static IEnumerable<TOutput> Choose<TInput, TOutput>(this IEnumerable<TInput> enumerable, Func<TInput, TOutput?> mapper) =>
|
||||||
|
enumerable
|
||||||
|
.Select(mapper)
|
||||||
|
.Where(x => x is not null)
|
||||||
|
.Cast<TOutput>();
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user