diff --git a/CliFx/Formatting/ExceptionConsoleFormatter.cs b/CliFx/Formatting/ExceptionConsoleFormatter.cs index d032edd..f4bf004 100644 --- a/CliFx/Formatting/ExceptionConsoleFormatter.cs +++ b/CliFx/Formatting/ExceptionConsoleFormatter.cs @@ -3,6 +3,7 @@ using System.IO; using CliFx.Exceptions; using CliFx.Infrastructure; using CliFx.Utils; +using CliFx.Utils.Extensions; namespace CliFx.Formatting; @@ -26,10 +27,8 @@ internal class ExceptionConsoleFormatter : ConsoleFormatter Write('('); - for (var i = 0; i < stackFrame.Parameters.Count; i++) + foreach (var (parameter, i) in stackFrame.Parameters.WithIndex()) { - var parameter = stackFrame.Parameters[i]; - // Separator if (i > 0) { diff --git a/CliFx/Utils/Extensions/CollectionExtensions.cs b/CliFx/Utils/Extensions/CollectionExtensions.cs index d61ae2b..f2b901c 100644 --- a/CliFx/Utils/Extensions/CollectionExtensions.cs +++ b/CliFx/Utils/Extensions/CollectionExtensions.cs @@ -7,6 +7,13 @@ namespace CliFx.Utils.Extensions; internal static class CollectionExtensions { + public static IEnumerable<(T value, int index)> WithIndex(this IEnumerable source) + { + var i = 0; + foreach (var o in source) + yield return (o, i++); + } + public static IEnumerable WhereNotNull(this IEnumerable source) where T : class {