1+ namespace LinkDotNet . StringBuilder ;
2+
3+ public ref partial struct ValueStringBuilder
4+ {
5+ /// <summary>
6+ /// Concatenates multiple objects together.
7+ /// </summary>
8+ /// <param name="values">Values, which will be concatenated together.</param>
9+ /// <typeparam name="T">Any given type, which can be translated to string.</typeparam>
10+ /// <returns>Concatenated string or an empty string if <see cref="values"/> is empty.</returns>
11+ public static string Concat < T > ( params T [ ] values )
12+ {
13+ if ( values . Length == 0 )
14+ {
15+ return string . Empty ;
16+ }
17+
18+ using var sb = new ValueStringBuilder ( stackalloc char [ 128 ] ) ;
19+ sb . AppendJoin ( string . Empty , values ) ;
20+ return sb . ToString ( ) ;
21+ }
22+
23+ /// <summary>
24+ /// Concatenates two different types together.
25+ /// </summary>
26+ /// <typeparam name="T1">Typeparameter of <paramref name="arg1"/>.</typeparam>
27+ /// <typeparam name="T2">Typeparameter of <paramref name="arg2"/>.</typeparam>
28+ /// <param name="arg1">First argument.</param>
29+ /// <param name="arg2">Second argument.</param>
30+ /// <returns>String representation of the concateneted result.</returns>
31+ public static string Concat < T1 , T2 > ( T1 arg1 , T2 arg2 )
32+ {
33+ using var sb = new ValueStringBuilder ( stackalloc char [ 128 ] ) ;
34+ sb . AppendInternal ( arg1 ) ;
35+ sb . AppendInternal ( arg2 ) ;
36+
37+ return sb . ToString ( ) ;
38+ }
39+
40+ /// <summary>
41+ /// Concatenates two different types together.
42+ /// </summary>
43+ /// <typeparam name="T1">Typeparameter of <paramref name="arg1"/>.</typeparam>
44+ /// <typeparam name="T2">Typeparameter of <paramref name="arg2"/>.</typeparam>
45+ /// <typeparam name="T3">Typeparameter of <paramref name="arg3"/>.</typeparam>
46+ /// <param name="arg1">First argument.</param>
47+ /// <param name="arg2">Second argument.</param>
48+ /// <param name="arg3">Third argument.</param>
49+ /// <returns>String representation of the concateneted result.</returns>
50+ public static string Concat < T1 , T2 , T3 > ( T1 arg1 , T2 arg2 , T3 arg3 )
51+ {
52+ using var sb = new ValueStringBuilder ( stackalloc char [ 128 ] ) ;
53+ sb . AppendInternal ( arg1 ) ;
54+ sb . AppendInternal ( arg2 ) ;
55+ sb . AppendInternal ( arg3 ) ;
56+
57+ return sb . ToString ( ) ;
58+ }
59+
60+ /// <summary>
61+ /// Concatenates two different types together.
62+ /// </summary>
63+ /// <typeparam name="T1">Typeparameter of <paramref name="arg1"/>.</typeparam>
64+ /// <typeparam name="T2">Typeparameter of <paramref name="arg2"/>.</typeparam>
65+ /// <typeparam name="T3">Typeparameter of <paramref name="arg3"/>.</typeparam>
66+ /// <typeparam name="T4">Typeparameter of <paramref name="arg4"/>.</typeparam>
67+ /// <param name="arg1">First argument.</param>
68+ /// <param name="arg2">Second argument.</param>
69+ /// <param name="arg3">Third argument.</param>
70+ /// <param name="arg4">Fourth argument.</param>
71+ /// <returns>String representation of the concateneted result.</returns>
72+ public static string Concat < T1 , T2 , T3 , T4 > ( T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 )
73+ {
74+ using var sb = new ValueStringBuilder ( stackalloc char [ 128 ] ) ;
75+ sb . AppendInternal ( arg1 ) ;
76+ sb . AppendInternal ( arg2 ) ;
77+ sb . AppendInternal ( arg3 ) ;
78+ sb . AppendInternal ( arg4 ) ;
79+
80+ return sb . ToString ( ) ;
81+ }
82+
83+ /// <summary>
84+ /// Concatenates two different types together.
85+ /// </summary>
86+ /// <typeparam name="T1">Typeparameter of <paramref name="arg1"/>.</typeparam>
87+ /// <typeparam name="T2">Typeparameter of <paramref name="arg2"/>.</typeparam>
88+ /// <typeparam name="T3">Typeparameter of <paramref name="arg3"/>.</typeparam>
89+ /// <typeparam name="T4">Typeparameter of <paramref name="arg4"/>.</typeparam>
90+ /// <typeparam name="T5">Typeparameter of <paramref name="arg5"/>.</typeparam>
91+ /// <param name="arg1">First argument.</param>
92+ /// <param name="arg2">Second argument.</param>
93+ /// <param name="arg3">Third argument.</param>
94+ /// <param name="arg4">Fourth argument.</param>
95+ /// <param name="arg5">Fifth argument.</param>
96+ /// <returns>String representation of the concateneted result.</returns>
97+ public static string Concat < T1 , T2 , T3 , T4 , T5 > ( T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 )
98+ {
99+ using var sb = new ValueStringBuilder ( stackalloc char [ 128 ] ) ;
100+ sb . AppendInternal ( arg1 ) ;
101+ sb . AppendInternal ( arg2 ) ;
102+ sb . AppendInternal ( arg3 ) ;
103+ sb . AppendInternal ( arg4 ) ;
104+ sb . AppendInternal ( arg5 ) ;
105+
106+ return sb . ToString ( ) ;
107+ }
108+ }
0 commit comments