From 493b76e0ed35e2301387bf0a5ba25b36698253ed Mon Sep 17 00:00:00 2001 From: kostas Date: Wed, 5 Jun 2024 09:57:09 +0200 Subject: [PATCH] fix: trywhere --- csharp/App/SchneiderMeterDriver/Utils.cs | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 csharp/App/SchneiderMeterDriver/Utils.cs diff --git a/csharp/App/SchneiderMeterDriver/Utils.cs b/csharp/App/SchneiderMeterDriver/Utils.cs new file mode 100644 index 000000000..4b5735a35 --- /dev/null +++ b/csharp/App/SchneiderMeterDriver/Utils.cs @@ -0,0 +1,49 @@ +namespace InnovEnergy.App.SchneiderDriver; + +public static class Utils +{ + public static IEnumerable TryWhere(this IEnumerable src, Func predicate) + { + foreach (var e in src) + { + var ok = false; + + try + { + ok = predicate(e); + } + catch + { + // ignored + } + + if (ok) + yield return e; + } + } + + public static IEnumerable TrySelect(this IEnumerable src, Func 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!; + } + } + + + +} \ No newline at end of file