以下代码从两个数据表中提供唯一的行。现在我想得到除这些之外的行。我正在尝试“!=”,但它给出了错误。
DataTable dtResult = new DataTable();
dtResult.Columns.Add("URL", typeof(string));
dtResult.Columns.Add("TimeSpend", typeof(string));
dtResult.Columns.Add("actionurl", typeof(string));
dtResult.Columns.Add("searchedtext", typeof(string));
dtResult.Columns.Add("datetime", typeof(string));
var result = from dataRows1 in dtTMC.AsEnumerable()
join dataRows2 in dtSK.AsEnumerable()
// how to write condition for !=
on dataRows1["URL"] equals dataRows2["websiteurl"]
select dtResult.LoadDataRow(new object[]
{
dataRows1.Field<string>("URL"),
dataRows1.Field<string>("TimeSpend"),
dataRows2.Field<string>("actionurl"),
dataRows2.Field<string>("searchedtext"),
dataRows2.Field<string>("datetime")
}, true);
DataTable dtAll = result.CopyToDataTable();
dtAll.DefaultView.ToTable();
答案 0 :(得分:0)
LINQ只支持相等连接,在连接本身中不能使用不同的运算符
但是,您可以使用where子句来完成此操作。
来自MSDN: 非等值连接 您可以使用多个from子句将新序列独立地引入查询,从而执行非等值连接,交叉连接和其他自定义连接操作。有关详细信息,请参阅如何:Perform Custom Join Operations (C# Programming Guide).