How I can filter a dataTable with Linq to datatable?
You are better of using DataTable.Select
method, but if you have to use LINQ then you can try:
DataTable selectedTable = tb.AsEnumerable() .Where(r => r.Field<string>("Modul") == value) .CopyToDataTable();
This would create a new DataTable
based on filtered values.
If you use DataTable.Select
string expression = "Modul =" + value;DataRow[] selectedRows = tb.Select(expression);
You can use condition to check rows exist in addition before casting. System.Linq namespace is required for Any() to work
var rows = values.AsEnumerable().Where (row => row.Field<string>("Status") == action);//get the rows where the status is equal to actionif(rows.Any()){ DataTable dt = rows.CopyToDataTable<DataRow>();//Copying the rows into the DataTable as DataRow}
To Retrieve the DataTable based on filtering the list of item.(i.e.,if any of the list item is present in datatable, that matched result will received.
List<string>item=new List<string>(){"TG1","TG2"}; DataTable tbsplit = (from a in tbl.AsEnumerable() where item.Any(x => a.Field<string>("CSubset").ToUpper().Contains(x.ToUpper())) select a).CopyToDataTable();//By Executing this, the Filter DataTable is obtained