From 8c4426abc18cb2cdf84ee57988866ddc4b91c2de Mon Sep 17 00:00:00 2001 From: Timerix22 Date: Sun, 12 Feb 2023 01:04:31 +0600 Subject: [PATCH] StringBuilderExtensions --- DTLib/Extensions/StrugBuilderExtensions.cs | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 DTLib/Extensions/StrugBuilderExtensions.cs diff --git a/DTLib/Extensions/StrugBuilderExtensions.cs b/DTLib/Extensions/StrugBuilderExtensions.cs new file mode 100644 index 0000000..a8ea145 --- /dev/null +++ b/DTLib/Extensions/StrugBuilderExtensions.cs @@ -0,0 +1,52 @@ +namespace DTLib.Extensions; + +public static class StrugBuilderExtensions +{ + public static StringBuilder AppendArray(this StringBuilder b, TVal[] array) + { + for (int i = 0; i < array.Length; i++) + b.Append(array[i]); + return b; + } + public static StringBuilder AppendArray(this StringBuilder b, TVal[] array, char separator) + { + if (array.Length == 0) return b; + b.Append(array[0]); + for (int i = 1; i < array.Length; i++) + b.Append(separator).Append(array[i]); + return b; + } + public static StringBuilder AppendArray(this StringBuilder b, TVal[] array, string separator) + { + if (array.Length == 0) return b; + b.Append(array[0]); + for (int i = 1; i < array.Length; i++) + b.Append(separator).Append(array[i]); + return b; + } + + public static StringBuilder AppendColletion(this StringBuilder b, IEnumerable enumerable) + { + foreach (var el in enumerable) + b.Append(el); + return b; + } + public static StringBuilder AppendColletion(this StringBuilder b, IEnumerable enumerable, char separator) + { + using IEnumerator enumerator = enumerable.GetEnumerator(); + if (!enumerator.MoveNext()) return b; + b.Append(enumerator.Current); + while (enumerator.MoveNext()) + b.Append(separator).Append(enumerator.Current); + return b; + } + public static StringBuilder AppendColletion(this StringBuilder b, IEnumerable enumerable, string separator) + { + using IEnumerator enumerator = enumerable.GetEnumerator(); + if (!enumerator.MoveNext()) return b; + b.Append(enumerator.Current); + while (enumerator.MoveNext()) + b.Append(separator).Append(enumerator.Current); + return b; + } +} \ No newline at end of file