gpt4 book ai didi

c# - 通过 LINQ to SQL 过滤数据

转载 作者:行者123 更新时间:2023-11-30 22:12:33 26 4
gpt4 key购买 nike

您好,我在过滤数据时遇到了问题。

我有两个表,一个是存储所有数据的主表。还有另一个表,其中存储关键字以从主表中过滤数据。

我面临的问题是我无法提出所需的确切查询,因为需要过滤掉到达主表数据中的关键字。

例如Keyword表中有10个词,那么Main table的数据就必须搜索所有这些关键词才能正确过滤掉。

我希望我已经把问题说清楚了。

另外我正在使用 LINQ TO SQL 解决方案,这是最受欢迎的

最佳答案

假设您有两个Datatable mainDataTable 和keyWordTable。使用下面给出的 linq。

var matched = from mainTable in mainDataTable.AsEnumerable()
join keyTable in keyWordTable.AsEnumerable() on mainTable.Field<int>("ID") equals keyTable.Field<int>("ID")
where !mainTable.Field<string>("Description").Contains(keyTable.Field<string>("KeyWord"))
select mainTable;
if (matched.Count() > 0)
{
DataTable finalTable = matched.CopyToDataTable();
}

备用

还有其他方式,看起来有点脏。

List<string> keywordList = new List<string>();
foreach (DataRow row in keyWordTable.Rows)
{
keywordList.Add(row["KeyWord"].ToString());
}

DataTable finalFilteredTable = mainDataTable.Clone();
bool check = false;
foreach (DataRow row in mainDataTable.Rows)
{
check = false;
string description = row["Description"].ToString();

foreach (string s in keywordList)
{
if (description.Contains(s))
{
check = true;
break;
}
}

if (!check)
{
finalFilteredTable.ImportRow(row);
}
}

关于c# - 通过 LINQ to SQL 过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19654342/

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