gpt4 book ai didi

c# - 从数据表中删除与 List 匹配的行

转载 作者:行者123 更新时间:2023-11-30 14:46:21 24 4
gpt4 key购买 nike

我有一个数据表,我想删除所有与 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;
}

最佳答案

假设该列是 SkillName

List<DataRow> removeRows = dt.AsEnumerable()
.Where(r => MatchingSkills.Contains(r.Field<string>("SkillName")))
.ToList();
removeRows.ForEach(dt.Rows.Remove);

旁注:我会使用 HashSet<string>因为这样会更有效率:

var MatchingSkills = new HashSet<string>(EnteredSkills.Select(c => c.Text));

关于c# - 从数据表中删除与 List<string> 匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49405493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com