@@ -135,12 +135,7 @@ public sealed class BitArray : ICloneable, IEnumerator<bool>, IEnumerable<bool>
135
135
/// <param name="n">length of the array.</param>
136
136
public BitArray ( int n )
137
137
{
138
- if ( n < 1 )
139
- {
140
- field = new bool [ 0 ] ;
141
- }
142
-
143
- field = new bool [ n ] ;
138
+ field = n <= 0 ? new bool [ 0 ] : new bool [ n ] ;
144
139
}
145
140
146
141
/// <summary>
@@ -328,40 +323,32 @@ public void Dispose()
328
323
{
329
324
var sequence1 = one . ToString ( ) ;
330
325
var sequence2 = two . ToString ( ) ;
331
- var result = string . Empty ;
332
- var tmp = string . Empty ;
326
+ var result = new StringBuilder ( ) ;
333
327
334
328
// for scaling of same length.
335
329
if ( one . Length != two . Length )
336
330
{
331
+ var tmp = new StringBuilder ( ) ;
337
332
int difference ;
338
333
if ( one . Length > two . Length )
339
334
{
340
335
// one is greater
341
336
difference = one . Length - two . Length ;
342
337
343
338
// fills up with 0's
344
- for ( var i = 0 ; i < difference ; i ++ )
345
- {
346
- tmp += '0' ;
347
- }
348
-
349
- tmp += two . ToString ( ) ;
350
- sequence2 = tmp ;
339
+ tmp . Append ( '0' , difference ) ;
340
+ tmp . Append ( two . ToString ( ) ) ;
341
+ sequence2 = tmp . ToString ( ) ;
351
342
}
352
343
else
353
344
{
354
345
// two is greater
355
346
difference = two . Length - one . Length ;
356
347
357
348
// fills up with 0's
358
- for ( var i = 0 ; i < difference ; i ++ )
359
- {
360
- tmp += '0' ;
361
- }
362
-
363
- tmp += one . ToString ( ) ;
364
- sequence1 = tmp ;
349
+ tmp . Append ( '0' , difference ) ;
350
+ tmp . Append ( one . ToString ( ) ) ;
351
+ sequence1 = tmp . ToString ( ) ;
365
352
}
366
353
} // end scaling
367
354
@@ -370,11 +357,10 @@ public void Dispose()
370
357
371
358
for ( var i = 0 ; i < len ; i ++ )
372
359
{
373
- result += sequence1 [ i ] . Equals ( '0' ) && sequence2 [ i ] . Equals ( '0' ) ? '0' : '1' ;
360
+ result . Append ( sequence1 [ i ] . Equals ( '0' ) && sequence2 [ i ] . Equals ( '0' ) ? '0' : '1' ) ;
374
361
}
375
362
376
- result = result . Trim ( ) ;
377
- ans . Compile ( result ) ;
363
+ ans . Compile ( result . ToString ( ) ) ;
378
364
379
365
return ans ;
380
366
}
@@ -389,22 +375,14 @@ public void Dispose()
389
375
{
390
376
var ans = new BitArray ( one . Length ) ;
391
377
var sequence = one . ToString ( ) ;
392
- var result = string . Empty ;
378
+ var result = new StringBuilder ( sequence . Length ) ;
393
379
394
380
foreach ( var ch in sequence )
395
381
{
396
- if ( ch == '1' )
397
- {
398
- result += '0' ;
399
- }
400
- else
401
- {
402
- result += '1' ;
403
- }
382
+ result . Append ( ch == '1' ? '0' : '1' ) ;
404
383
}
405
384
406
- result = result . Trim ( ) ;
407
- ans . Compile ( result ) ;
385
+ ans . Compile ( result . ToString ( ) ) ;
408
386
409
387
return ans ;
410
388
}
@@ -440,54 +418,45 @@ public void Dispose()
440
418
{
441
419
var sequence1 = one . ToString ( ) ;
442
420
var sequence2 = two . ToString ( ) ;
443
- var tmp = string . Empty ;
444
421
445
422
// for scaling of same length.
446
423
if ( one . Length != two . Length )
447
424
{
425
+ var tmp = new StringBuilder ( ) ;
448
426
int difference ;
449
427
if ( one . Length > two . Length )
450
428
{
451
429
// one is greater
452
430
difference = one . Length - two . Length ;
453
431
454
432
// fills up with 0's
455
- for ( var i = 0 ; i < difference ; i ++ )
456
- {
457
- tmp += '0' ;
458
- }
459
-
460
- tmp += two . ToString ( ) ;
461
- sequence2 = tmp ;
433
+ tmp . Append ( '0' , difference ) ;
434
+ tmp . Append ( two . ToString ( ) ) ;
435
+ sequence2 = tmp . ToString ( ) ;
462
436
}
463
437
else
464
438
{
465
439
// two is greater
466
440
difference = two . Length - one . Length ;
467
441
468
442
// fills up with 0's
469
- for ( var i = 0 ; i < difference ; i ++ )
470
- {
471
- tmp += '0' ;
472
- }
473
-
474
- tmp += one . ToString ( ) ;
475
- sequence1 = tmp ;
443
+ tmp . Append ( '0' , difference ) ;
444
+ tmp . Append ( one . ToString ( ) ) ;
445
+ sequence1 = tmp . ToString ( ) ;
476
446
}
477
447
} // end scaling
478
448
479
449
var len = one . Length > two . Length ? one . Length : two . Length ;
480
450
var ans = new BitArray ( len ) ;
481
451
482
- var sb = new StringBuilder ( ) ;
452
+ var sb = new StringBuilder ( len ) ;
483
453
484
454
for ( var i = 0 ; i < len ; i ++ )
485
455
{
486
- _ = sb . Append ( sequence1 [ i ] == sequence2 [ i ] ? '0' : '1' ) ;
456
+ sb . Append ( sequence1 [ i ] == sequence2 [ i ] ? '0' : '1' ) ;
487
457
}
488
458
489
- var result = sb . ToString ( ) . Trim ( ) ;
490
- ans . Compile ( result ) ;
459
+ ans . Compile ( sb . ToString ( ) ) ;
491
460
492
461
return ans ;
493
462
}
@@ -571,18 +540,10 @@ public void Compile(string sequence)
571
540
ThrowIfSequenceIsInvalid ( sequence ) ;
572
541
573
542
// for appropriate scaling
574
- var tmp = string . Empty ;
575
543
if ( sequence . Length < field . Length )
576
544
{
577
545
var difference = field . Length - sequence . Length ;
578
-
579
- for ( var i = 0 ; i < difference ; i ++ )
580
- {
581
- tmp += '0' ;
582
- }
583
-
584
- tmp += sequence ;
585
- sequence = tmp ;
546
+ sequence = new string ( '0' , difference ) + sequence ;
586
547
}
587
548
588
549
// actual compile procedure.
@@ -599,8 +560,6 @@ public void Compile(string sequence)
599
560
/// <param name="number">A positive integer number.</param>
600
561
public void Compile ( int number )
601
562
{
602
- var tmp = string . Empty ;
603
-
604
563
// precondition I
605
564
if ( number <= 0 )
606
565
{
@@ -620,14 +579,7 @@ public void Compile(int number)
620
579
if ( binaryNumber . Length < field . Length )
621
580
{
622
581
var difference = field . Length - binaryNumber . Length ;
623
-
624
- for ( var i = 0 ; i < difference ; i ++ )
625
- {
626
- tmp += '0' ;
627
- }
628
-
629
- tmp += binaryNumber ;
630
- binaryNumber = tmp ;
582
+ binaryNumber = new string ( '0' , difference ) + binaryNumber ;
631
583
}
632
584
633
585
// actual compile procedure.
@@ -644,8 +596,6 @@ public void Compile(int number)
644
596
/// <param name="number">A positive long integer number.</param>
645
597
public void Compile ( long number )
646
598
{
647
- var tmp = string . Empty ;
648
-
649
599
// precondition I
650
600
if ( number <= 0 )
651
601
{
@@ -665,14 +615,7 @@ public void Compile(long number)
665
615
if ( binaryNumber . Length < field . Length )
666
616
{
667
617
var difference = field . Length - binaryNumber . Length ;
668
-
669
- for ( var i = 0 ; i < difference ; i ++ )
670
- {
671
- tmp += '0' ;
672
- }
673
-
674
- tmp += binaryNumber ;
675
- binaryNumber = tmp ;
618
+ binaryNumber = new string ( '0' , difference ) + binaryNumber ;
676
619
}
677
620
678
621
// actual compile procedure.
@@ -828,7 +771,7 @@ private static void ThrowIfSequenceIsInvalid(string sequence)
828
771
}
829
772
830
773
/// <summary>
831
- /// Utility method foir checking a given sequence contains only zeros and ones.
774
+ /// Utility method for checking a given sequence contains only zeros and ones.
832
775
/// This method will used in Constructor (sequence : string) and Compile(sequence : string).
833
776
/// </summary>
834
777
/// <param name="sequence">String sequence.</param>
0 commit comments