fix: trywhere
This commit is contained in:
parent
f70e3fe180
commit
493b76e0ed
|
@ -0,0 +1,49 @@
|
|||
namespace InnovEnergy.App.SchneiderDriver;
|
||||
|
||||
public static class Utils
|
||||
{
|
||||
public static IEnumerable<T> TryWhere<T>(this IEnumerable<T> src, Func<T, Boolean> predicate)
|
||||
{
|
||||
foreach (var e in src)
|
||||
{
|
||||
var ok = false;
|
||||
|
||||
try
|
||||
{
|
||||
ok = predicate(e);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
|
||||
if (ok)
|
||||
yield return e;
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<R> TrySelect<T,R>(this IEnumerable<T> src, Func<T, R> map)
|
||||
{
|
||||
foreach (var e in src)
|
||||
{
|
||||
var ok = false;
|
||||
var result = default(R);
|
||||
|
||||
try
|
||||
{
|
||||
result = map(e);
|
||||
ok = true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
|
||||
if (ok)
|
||||
yield return result!;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue