我有一个 DataTable,我想删除所有与
List<string>
匹配的行,该怎么做?以下是我的代码,public static DataTable GetSkills(List<Skill> EnteredSkills)
{
DataTable dt = new DataTable();
dt = GetDBMaster("SkillMaster");
List<string> MatchingSkills = EnteredSkills.Select(c => c.Text).ToList();
//Logic to Delete rows MatchingSkills from dt here
return dt;
}
最终解决方案
public static DataTable GetSkills(List<Skill> EnteredSkills)
{
DataTable dt = new DataTable();
dt = GetDBMaster("SkillMaster");
var MatchingSkills = new HashSet<string>(EnteredSkills.Select(c => c.Text));
List<DataRow> removeRows = dt.AsEnumerable().Where(r => MatchingSkills.Contains(r.Field<string>("DataTableSkillColumnName"))).ToList();
removeRows.ForEach(dt.Rows.Remove);
return dt;
}
GetDBMaster()
内部发生了什么,为什么不将MatchingSkills
作为查询填充数据表的条件之一? - sujith karivelil