不在列表中的位置<string> </string>

时间:2014-03-04 20:50:54

标签: c# linq entity-framework

我有List<string>,其中包含许多字符串值。 在使用列表而不是单个值进行查询时,是否可以过滤集合?

这样的事情:

List<string> slist = new List<string>() { "val 1", "val 2", "val 3" };
var q = (from s in ctx.Shipments
         where !s.ShipName.ToList().Contains(slist)).ToList()

3 个答案:

答案 0 :(得分:4)

您需要的是!slist.Contains(s.ShipName),如:

(from s in ctx.Shipments 
 where !slist.Contains(s.ShipName)
).ToList();

您可能会看到creating IN query with LINQ

的这篇文章

答案 1 :(得分:1)

from sn in ctx.ShipNames
where !slist.Contains(sn.Name)
select sn.Shipment

可能是您可以从ShipName实体

答案 2 :(得分:0)

试试这个:

List<string> slist = new List<string>() {"val 1", "val 2", "val 3"};
(from s in ctx.Shipments where !slist.Contains(s.ShipName).ToList();

通过这种方式,您将获得货件的所有记录,其名称未包含在slist中。