@@ -6,53 +6,44 @@ public static class StringExtensions
66{
77 public static string ToCamelCaseFromPascal ( this string str , [ CallerMemberName ] string ? memberName = null )
88 {
9- return ToCamelCaseFromPascal ( str . AsSpan ( ) , memberName ) . ToString ( ) ;
10- }
11-
12- public static string ToPrivateFieldFromPascal ( this string str , [ CallerMemberName ] string ? memberName = null )
13- {
14- return ToPrivateFieldFromPascal ( str . AsSpan ( ) , memberName ) . ToString ( ) ;
15- }
16-
17- public static ReadOnlySpan < char > ToPrivateFieldFromPascal ( this ReadOnlySpan < char > span ,
18- [ CallerMemberName ] string ? memberName = null )
19- {
9+ var span = str . AsSpan ( ) ;
2010 if ( span . Length is 0 )
2111 throw new ArgumentException ( $ "Null or Empty string was provided from '{ memberName } '") ;
2212
23- var array = new char [ span . Length + 1 ] ;
13+ if ( char . IsLower ( span [ 0 ] ) )
14+ return str ;
2415
25- array [ 0 ] = '_' ;
26- array [ 1 ] = char . ToLowerInvariant ( span [ 0 ] ) ;
16+ Span < char > array = stackalloc char [ span . Length ] ;
17+
18+ array [ 0 ] = char . ToLowerInvariant ( span [ 0 ] ) ;
2719
2820 // Skip first element since we handled it manually.
2921 for ( var i = 1 ; i < span . Length ; i ++ )
30- array [ i + 1 ] = span [ i ] ;
22+ array [ i ] = span [ i ] ;
3123
32- return array ;
24+ return array . ToString ( ) ;
3325 }
3426
35- public static ReadOnlySpan < char > ToCamelCaseFromPascal ( this ReadOnlySpan < char > span ,
36- [ CallerMemberName ] string ? memberName = null )
27+ public static string ToPrivateFieldFromPascal ( this string str , [ CallerMemberName ] string ? memberName = null )
3728 {
29+ var span = str . AsSpan ( ) ;
3830 if ( span . Length is 0 )
3931 throw new ArgumentException ( $ "Null or Empty string was provided from '{ memberName } '") ;
4032
41- if ( char . IsLower ( span [ 0 ] ) )
42- return span ;
43-
44- var array = new char [ span . Length ] ;
33+ Span < char > array = stackalloc char [ span . Length + 1 ] ;
4534
46- array [ 0 ] = char . ToLowerInvariant ( span [ 0 ] ) ;
35+ array [ 0 ] = '_' ;
36+ array [ 1 ] = char . ToLowerInvariant ( span [ 0 ] ) ;
4737
4838 // Skip first element since we handled it manually.
4939 for ( var i = 1 ; i < span . Length ; i ++ )
50- array [ i ] = span [ i ] ;
40+ array [ i + 1 ] = span [ i ] ;
5141
52- return array ;
42+ return array . ToString ( ) ;
5343 }
5444
55- public static IEnumerable < string > ScopeTo ( this IEnumerable < string > content , string header ) => CreateScope ( header , content ) ;
45+ public static IEnumerable < string > ScopeTo ( this IEnumerable < string > content , string header ) =>
46+ CreateScope ( header , content ) ;
5647
5748 public static IEnumerable < string > CreateScope ( this string header , IEnumerable < string > content ) => content
5849 . Select ( x => $ " { x } ")
@@ -83,15 +74,13 @@ public static IEnumerable<string> CreateScope(this string header, string content
8374
8475 public static string ToAlphaNumericMethodName ( this string txt )
8576 {
86- var arr = new char [ txt . Length ] ;
8777 var index = 0 ;
8878
89- for ( var i = 0 ; i < txt . Length ; i ++ )
90- {
91- var c = txt [ i ] ;
92- if ( char . IsLetter ( c ) || ( index > 0 && char . IsNumber ( c ) ) ) arr [ index ++ ] = c ;
93- }
79+ Span < char > arr = stackalloc char [ txt . Length ] ;
80+ foreach ( var c in txt . AsSpan ( ) )
81+ if ( char . IsLetter ( c ) || ( index > 0 && char . IsNumber ( c ) ) )
82+ arr [ index ++ ] = c ;
9483
95- return new string ( arr , 0 , index ) ;
84+ return arr . Slice ( 0 , index ) . ToString ( ) ;
9685 }
9786}
0 commit comments