I would perhaps consider using the IndexOf() method like so:
foreach(DataRow m_row in base_rows)
Company nu = new Company(m_row, symb_rows.IndexOf(m_row));
Perhaps will you have to use Array.IndexOf() instead, this worked in VBNET2008, as I'm currently working with it, but I didn't test it in C#.
For Each DataRow m_row in base_rows
Company nu = New Company(m_row, symb_rows(Array.IndexOf(symb_rows, m_row)))
Next
So I might suggest the following in C#.
foreach (DataRow m_row in base_rows)
Company nu = new Company(m_row, symb_rows[Array.IndexOf(symb_rows, m_row)]);
Otherwise, you might consider using a for(;;) instead, sometimes it's better doing so.
for(int index = 0; index < base_rows.Length && index < symb_rows.Length; ++index)
Company nu = new Company(base_rows[index], symb_rows[symb_rows.IndexOf(base[index])]);
I don't know which you prefer though.