Pen*_*uen 1 c# linq visual-studio-2008 visual-studio
我有"包含"方法,但我需要一个"不包含"方法.有什么建议?
var ResultsOfMPD = (from m in engMpdMultiSelect
where engMpdMultiItems.Select(o => o.ENG_MPD_MYTECHNIC_TASK_NO).
Contains(m.ENG_MPD_MYTECHNIC_TASK_NO)
select m);
Run Code Online (Sandbox Code Playgroud)
有没有这样的方法?
var ResultsOfMPD = (from m in engMpdMultiSelect
where engMpdMultiItems.Select(o => o.ENG_MPD_MYTECHNIC_TASK_NO).
NOTContains(m.ENG_MPD_MYTECHNIC_TASK_NO)
select m);
Run Code Online (Sandbox Code Playgroud)
使用!运算符,如下所示:
var ResultsOfMPD = from m in engMpdMultiSelect
where !engMpdMultiItems.Select(o => o.ENG_MPD_MYTECHNIC_TASK_NO).
Contains(m.ENG_MPD_MYTECHNIC_TASK_NO)
select m;
Run Code Online (Sandbox Code Playgroud)
顺便说一下,你不需要Select()电话.
相反,你可以写
var ResultsOfMPD = from m in engMpdMultiSelect
where !engMpdMultiItems.Any(o => o.ENG_MPD_MYTECHNIC_TASK_NO == m.ENG_MPD_MYTECHNIC_TASK_NO)
select m;
Run Code Online (Sandbox Code Playgroud)
或者,等效地,
var ResultsOfMPD = from m in engMpdMultiSelect
where engMpdMultiItems.All(o => o.ENG_MPD_MYTECHNIC_TASK_NO != m.ENG_MPD_MYTECHNIC_TASK_NO)
select m;
Run Code Online (Sandbox Code Playgroud)