Podes hacerlo con linq.
Solo que cuando llenes el datatable especificas el tipo de dato de la columna que quieres.
Código c#:
Ver originalDataTable dt = new DataTable();
dt.Columns.Add("Id");
dt.Columns.Add("Nombre", typeof(string));
//Tu demás código para llenar el datatable
Y luego haces la consulta linq a tu datable y llenas tu arraylist.
Código c#:
Ver originalvar query = from datos in dt.AsEnumerable()
select new
{
Nombre = datos.Field<string>("Nombre")
};
ArrayList al = new ArrayList();
foreach (var l in query.ToArray())
{
al.Add(l);
}
dt es el nombre del datatable y en la cosulta linq obtenes los datos de la columna nombre.
Saludos