C# 通过linq语句删除符合条件的datatable中的行,语句怎样写

var q = from c in dt77.AsEnumerable()
where c.Field("行号") == Convert.ToInt32(temp4.Rows[k]["行号"])
select c;

你这么写好,然后foreach删除,或者,把条件取反,得到的查询结果就是删除后的。

var q = from c in dt77.AsEnumerable()
where c.Field("行号") != Convert.ToInt32(temp4.Rows[k]["行号"])
select c;
此时q就是排除了这个条件之后的数据

图片说明
报错啊,回复caozhy:

froeach(Datarows rows in q )
{

}

类似于这样 var filtered = sourceTable.Rows.Cast().Where(x => x.Field("WEATHER") == "sunny")
.Select(x => new{Weather = x.Field("WEATHER"),Play = x.Field("PLAY")}).ToList();
然后你可以用它
foreach (var item in filtered)
{ Console.WriteLine(string.Format("Weather ={0}, Play = {1}", item.Weather,item.Play)); }