486 {
487 int num = 0;
488 ReadOnlySpan<char> readOnlySpan = strToClean;
489 for (
int i = 0;
i < readOnlySpan.Length;
i++)
490 {
491 char c = readOnlySpan[
i];
493 {
494 num++;
495 }
496 }
497 if (num == 0)
498 {
499 return backingString ??
new string(strToClean);
500 }
501 if (num == strToClean.
Length)
502 {
503 return string.Empty;
504 }
506 {
507 return string.Create(strToClean.
Length - num, ((IntPtr)ptr, strToClean.
Length), delegate(Span<char>
buffer, (IntPtr StrToClean,
int Length)
state)
508 {
509 ReadOnlySpan<char> readOnlySpan2 =
new ReadOnlySpan<char>((
void*)
state.StrToClean,
state.Length);
510 int num2 = 0;
511 ReadOnlySpan<char> readOnlySpan3 = readOnlySpan2;
512 for (int j = 0; j < readOnlySpan3.Length; j++)
513 {
514 char c2 = readOnlySpan3[j];
516 {
518 }
519 }
520 });
521 }
522 }
static bool IsBidiControlCharacter(char ch)