我正在尝试使用 LINQ (C#) 在一系列 SQL LIKE 语句上模拟 SQL IN 语句。我从一个IQueryable<user>
尚未“过滤”的名为 Query 的对象开始。我刚开始在 Stack Overflow 上发帖,所以请耐心等待我 :)...
ObjectQuery<user> Context = this.Context.users;
IQueryable<user> Query = (IQueryable<user>)Context;
// create a BLANK clone of the FULL list (Query)
var QueryFinal = Query.Where(i => i.ID == 0);
foreach (String Item in userFilter.Name.Contains)
{
// based on the FULL list (Query) return all records that apply to this item & then append results to the final list
QueryFinal = QueryFinal.Concat(Query.Where(i => i.Name.Contains(Item)));
}
return QueryFinal.ToList();
我认为在每次迭代中,在 Query.Where 语句上返回的结果集将被附加到 QueryFinal 列表中,它确实如此,但由于某种原因,在每次后续迭代中,它似乎覆盖了所有先前的记录应该在最终列表中“保存以供保管”。我也尝试过使用 .Union 但仍然不是我希望的结果。它似乎返回的只是最后一个结果集,而不是所有附加的结果集。有人发现我做错了什么吗?