title: What is taking IsNumeric() so long in .NET?
body: <p>Was doing some benchmarking with IsNumeric today and compared it to the following function:</p>
  
  <pre><code>Private Function IsNumeric(ByVal str As String) As Boolean
      If String.IsNullOrEmpty(Str) Then Return False
      Dim c As Char
  
      For i As Integer = 0 To Str.Length - 1
          c = Str(i)
          If Not Char.IsNumber(c) Then Return False
      Next
  
      Return True
  End Function
  </code></pre>
  
  <p>I was pretty surprised with the result.
  With a numeric value this one was about 8-10 times faster then regular IsNumeric(), and with an empty or non-numeric value it was 1000-1500 times faster.</p>
  
  <p>What is taking IsNumeric so long? Is there something else going on under the hood that I should consider before replacing it with the function above?
  I use IsNumeric in about 50 different places all over my site, mostly for validation of forms and query strings.</p>