title: ItemArray to string with format is invalid
body: <p>I have a <code>DataTable</code> with several <code>DataRow</code> that I want to format in a new <code>DataTable</code> but I've found a problem when I try to format some rows:</p>
  
  <pre><code>DataTable ret = functionThatGetsaDataTableUsingSQL(); //Original DataTable
  DataTable dt = new DataTable(); //Final DataTable
  foreach (DataRow dr in ret.Rows)
  {
      DataRow row = dt.Rows.Add();
      for (int j = 0; j &lt; dr.ItemArray.Length; j++)
      {
          if (j == 14) row[j] = dr.ItemArray[j].ToString("C2");
          else row[j] = dr.ItemArray[j];
      }
  }
  </code></pre>
  
  <p>The <code>row[j] = dr.ItemArray[j].ToString("C2");</code> doesn't work saying <code>No overload for method 'ToString' takes 1 arguments</code></p>
  
  <p>I tried to simplify the code as much as I could in order to focus just in the formatting part.</p>
  
  <p>How can I format this value? I know I can cast a <code>Convert.ToDecimal()</code> before using the <code>ToString("C2")</code> but is that the ONLY way to do it?</p>