From 829732a7ba8961f06f5d52378d3e43a286757ece Mon Sep 17 00:00:00 2001 From: ig Date: Wed, 16 Aug 2023 15:14:35 +0200 Subject: [PATCH] Introduce AsReadOnlyList extension to cast arrays --- csharp/Lib/Utils/ArrayExtensions.cs | 2 ++ csharp/Lib/Utils/EnumerableUtils.cs | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/csharp/Lib/Utils/ArrayExtensions.cs b/csharp/Lib/Utils/ArrayExtensions.cs index a24c169b5..89abf990c 100644 --- a/csharp/Lib/Utils/ArrayExtensions.cs +++ b/csharp/Lib/Utils/ArrayExtensions.cs @@ -13,4 +13,6 @@ public static class ArrayExtensions Array.Fill(ts, element); return ts; } + + public static IReadOnlyList AsReadOnlyList(this T[] ts) => ts; } \ No newline at end of file diff --git a/csharp/Lib/Utils/EnumerableUtils.cs b/csharp/Lib/Utils/EnumerableUtils.cs index 10d777f5b..008629086 100644 --- a/csharp/Lib/Utils/EnumerableUtils.cs +++ b/csharp/Lib/Utils/EnumerableUtils.cs @@ -277,6 +277,9 @@ public static class EnumerableUtils public static T[] ToArray(this IEnumerable ts, Int32 n) { + if (ts is T[] ta) + return ta; + var array = new T[n]; var i = 0; @@ -296,6 +299,8 @@ public static class EnumerableUtils return ts as T[] ?? ts.ToArray(ts.Count); } + + public static IEnumerable Concat(this IEnumerable ts, T last) { foreach (var t in ts)