you can select dynamically columns like
x[mycolum]
but your code fails because you return list of strings and trying to assign to a
IEnumerable<datarow>
, try below
var rows = dt2.AsEnumerable().Where(r => r.Field<int32>("Year") == year).Select(x => x[mycolum].ToString()).ToList();
or
List<string> rows = dt2.AsEnumerable().Where(r => r.Field<int32>("Year") == year).Select(x => x[mycolum].ToString()).ToList();