c# - 如何从列表中获取 NON 包含数据?

标签 c# visual-studio visual-studio-2008 linq

我有“包含”方法,但我需要一个“不包含”方法。有什么建议吗?

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);

有这样的方法吗?

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);

最佳答案

使用 ! 运算符,如下所示:

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;

顺便说一句,您不需要 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;

或者,等价地,

var ResultsOfMPD = from m in engMpdMultiSelect
                   where engMpdMultiItems.All(o => o.ENG_MPD_MYTECHNIC_TASK_NO != m.ENG_MPD_MYTECHNIC_TASK_NO)
                   select m;

关于c# - 如何从列表中获取 NON 包含数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318922/

相关文章:

C# 我是否正确使用锁?

c# - 这个 LINQ 语句会返回 null 吗?

c# - 如何在我的 C# 浏览器中单击非 ID java 按钮?

c++ - 为什么这个专门用于 basic_ifstream 模板的 char_traits<uint8_t> 和 codecvt<uint8_t> 会抛出 std::bad_cast?

asp.net - 如何更改 .ASPX 自动格式化设置 (Visual Studio)

c# - INSERT/SELECT 查询中的 SQL Server 和汉字

c - Win32 到 Win64 移植编译问题

json - f# 类构造函数格式

c# - Visual Studio、部署项目和文件副本

c++ - 编译当前.cpp 文件 VS2008