You need to reference the System.Data.DataSetExtensions assembly and use the System.Data namespace.
dt =dt.AsEnumerable()
.Where(r=>r.Field<datetime>("DateCol").Month ==9)
.CopyToDataTable();
And read the documentation for .NET Framework 3.5
Creating a DataTable From a Query (LINQ to DataSet)[
^]
below is sample code from above reference
dataGridView.DataSource = bindingSource;
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);
DataTable orders = ds.Tables["SalesOrderHeader"];
IEnumerable<DataRow> query =
from order in orders.AsEnumerable()
where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1)
select order;
DataTable boundTable = query.CopyToDataTable<DataRow>();
bindingSource.DataSource = boundTable;