@@ -68,20 +68,7 @@ public Parser(ParseOptions options)
6868 ? originalLines
6969 : originalLines . Where ( line => ! string . IsNullOrWhiteSpace ( line ) ) . ToArray ( ) ;
7070
71- if ( linesToProcess . Length == 0 )
72- return Array . Empty < T > ( ) ;
73-
74- var list = new T [ linesToProcess . Length ] ;
75-
76- // Sequential processing to avoid potential parallel processing issues
77- for ( int i = 0 ; i < linesToProcess . Length ; i ++ )
78- {
79- var parsed = ParseLine < T > ( linesToProcess [ i ] , i ) ;
80- parsed . Index = i ;
81- list [ i ] = parsed ;
82- }
83-
84- return list ;
71+ return ProcessLines < T > ( linesToProcess , options ) ;
8572 }
8673
8774 private string [ ] ReadToLines ( string path )
@@ -242,6 +229,24 @@ private string[] GetDelimiterSeparatedValues(string line)
242229 }
243230 }
244231
232+ private T [ ] ProcessLines < T > ( string [ ] linesToProcess , ParseOptions options ) where T : IFileLine , new ( )
233+ {
234+ if ( linesToProcess . Length == 0 )
235+ return Array . Empty < T > ( ) ;
236+
237+ var list = new T [ linesToProcess . Length ] ;
238+
239+ // Sequential processing to avoid potential parallel processing issues
240+ for ( int i = 0 ; i < linesToProcess . Length ; i ++ )
241+ {
242+ var parsed = ParseLine < T > ( linesToProcess [ i ] , i ) ;
243+ parsed . Index = i ;
244+ list [ i ] = parsed ;
245+ }
246+
247+ return list ;
248+ }
249+
245250 public T [ ] Parse < T > ( Stream stream , Encoding encoding = null ) where T : IFileLine , new ( )
246251 {
247252 return Parse < T > ( stream , encoding , Options ) ;
@@ -403,17 +408,7 @@ private string[] GetDelimiterSeparatedValues(string line)
403408 if ( linesToProcess . Length == 0 )
404409 return Array . Empty < T > ( ) ;
405410
406- var list = new T [ linesToProcess . Length ] ;
407-
408- // Process sequentially in async context
409- for ( int i = 0 ; i < linesToProcess . Length ; i ++ )
410- {
411- var parsed = await Task . Run ( ( ) => ParseLine < T > ( linesToProcess [ i ] , i ) ) ;
412- parsed . Index = i ;
413- list [ i ] = parsed ;
414- }
415-
416- return list ;
411+ return await Task . Run ( ( ) => ProcessLines < T > ( linesToProcess , options ) ) ;
417412 }
418413
419414 public Result < T [ ] > TryParse < T > ( string filepath ) where T : IFileLine , new ( )
0 commit comments