I found the solution but don't know why. I edited my Question completing the code just for make it clear what I was doing an I changed to this
internal Dictionary GetDict(DataTable dt)
{
Dictionary dic = dt.AsEnumerable().ToDictionary(row => row.Field(0), row => row.Field