【发布时间】:2019-06-24 19:30:05
【问题描述】:
我终于得到了我的 LINQ 来查询数据表并使用硬编码值,我得到了一个包含这些记录的新数据表。但我需要帮助来更新此代码以使用我的 List returnClass() 作为 where 子句中的变量。
var query = from r in d.AsEnumerable()
where r.Field<string>("Column7") == "672"
select r;
DataTable output = query.CopyToDataTable<DataRow>();
foreach (DataRow row in output.Rows)
{
output.ImportRow(row);
}
我想将 == "672" 替换为我拥有的包含 94 个值的列表,我想从数据表中排除这些值。 这是我的原始帖子,它让我到达了现在的位置,但现在我只需要 LINQ 查询方面的帮助来使用我的列表并以排除在我的列表中具有值的任何记录的方式编写。我正在尝试使用该列表将我的 34k 记录过滤到 29k。
另一个我试过的东西不起作用的例子
var query = from r in d.AsEnumerable()
where !r.Field<string>("Column7").Contains(Convert.ToString(returnClass()))
select r;
DataTable output = query.CopyToDataTable<DataRow>();
foreach (DataRow row in output.Rows)
{
output.ImportRow(row);
}
列表看起来像这样(为了清楚起见被截断)
private List<int> returnClass()
{
List<int> cl = new List<int>();
cl.Add(75);
cl.Add(76);
cl.Add(77);
cl.Add(78);
cl.Add(79);
cl.Add(80);
cl.Add(81);
cl.Add(82);
return cl;
}
【问题讨论】:
-
您能否举例说明您的列表可能包含哪些内容,以及生成的查询会是什么样子?
-
是
myList字符串列表还是整数?