WhereNot linq 表达式

2024-04-20

我正在尝试创建一个扩展“WhereNot”

所以我可以使用:

Dim x = "Hello world "
Dim y = x.Split.WhereNot(AddressOf String.IsNullOrEmpty)

请注意,我的目标是学习 linq 表达式;不能解决我的问题。

我创建了这个函数:

 <Extension()> _
 Public Function WhereNot(Of TElement)(ByVal source As IQueryable(Of TElement), ByVal selector As Expression(Of Func(Of TElement, Boolean))) As IQueryable(Of TElement)
  Return source.Where(GetWhereNotExpression(selector))
 End Function

我不知道如何切换布尔标志,Negate 函数可以做到这一点吗?

欢迎使用 vb.net 和 C# 的答案


我意识到这是一个非常古老的已回答问题,但我认为所选答案具有误导性,因为提问者正在寻找表达式,而所选答案提供了 lambda。

这意味着从 IQueryable 调用将返回IEnumerable<T>,不是一个IQueryable<T>。这会强制表达式进行编译,并可能导致对 Linq 提供程序的访问优化不佳。

这是直接解决原始问题的答案。

public static class NegationExpressionHelper
{
    public static IQueryable<T> WhereNot<T>(this IQueryable<T> queryable, Expression<Func<T,bool>> predicate)
    {
        return queryable.Where(predicate.Invert());
    }
    public static Expression<Func<T, bool>> Invert<T>(this Expression<Func<T, bool>> original)
    {
        return Expression.Lambda<Func<T, bool>>(Expression.Not(original.Body), original.Parameters.Single());
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WhereNot linq 表达式 的相关文章

  • C# Collection 的最大容量在哪里定义?

    我尝试向一个Collection添加大量元素 每个元素都是简单的数据传输对象 具有基本数据类型的五个属性 没有什么特别的 在循环中添加新条目时 我总是收到 OutOfMemoryException 有趣的是 当我尝试添加第 8388608
  • 尝试关闭 Visual Basic 中所有打开的窗体

    我想要它 所以当单击我的按钮时 我退出我的应用程序 我尝试了一个简单的 for 循环 Private Sub CloseAllToolStripMenuItem Click sender As Object e As EventArgs H
  • 将字符缓冲区从 .NET 传递到 COM 并获取更新

    我有从 C 调用以下 COM 方法 该方法在提供的缓冲区中返回一个字符串pchText 这是not必须以零结尾 和复制的字符数pcch HRESULT Next in out long pcch out size is pcch OLECH
  • .NET 中用于个人项目的免费代码覆盖率工具 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个免费的 NET 代码覆盖率工具用于个人项目 Ncover 对于个人使用来说有点贵 NCove
  • C# 有没有办法制作时间范围列表?可配置

    有没有办法列出时间范围 例如 包含以下内容的列表 中午 12 00 至下午 1 00 下午 1 00 至 2 00 ETC 其中划分部分是配置 我认为你必须使用日期时间并将其除以一定的数字 在本例中为一小时 有人可以指出我正确的方向或给我提
  • 使用反射将 Nullable 属性复制到非 Nullable 版本

    我正在编写代码以使用反射将一个对象转换为另一个对象 它正在进行中 但我认为它可以归结为以下内容 我们相信这两个属性具有相同的类型 private void CopyPropertyValue object source string sou
  • 制作域中立程序集的步骤是什么?

    这些步骤也可以应用于第三方议会 可能已经是强名称的 吗 我的问题的上下文应该不重要 但无论如何我都会分享 我正在考虑制作一个记录器 或日志包装器 它始终知道要定位的 日志源 无论使用它的程序集是否是在一个应用程序域中 或分布在多个应用程序域
  • 如何使用反射确定属性类型?

    如何测试类型的属性以查看它是否是指定类型 编辑 我的目标是检查程序集以查看该程序集中的任何类型是否包含 MyType 或从 MyType 继承 的属性 这是我走过的路 AssemblyName n new AssemblyName n Co
  • 当属性名称与实体名称匹配时,实体框架将“1”附加到属性名称

    我正在使用实体框架 4 0 版使用数据库优先方法创建模型 在数据库中 有许多表包含与其父表名称相同的列 例如我们有 表 State 包含 State 和 StateName 列 表状态 包含状态和描述列 问题在于 当将这些表之一导入 EF
  • 验证使用 BER/DER 编码的 ASN.1 格式的 C# 中的 DSA 签名

    如何在 C 中验证 DSA 签名 Given 消息文本 签名摘要 通常为 ASN 1 DER 格式 公钥 采用签名的 X 509 证书 PEM 或 DER 格式 我尝试了多种方法 但都没有成功 OpenSSL NET http openss
  • C# - 具有属性和节点值的 Xml 元素

    我有一些需要反序列化为对象的 Xml XML 是
  • 使用正则表达式或其他解析从文件中读取值

    我有一个记录带有时间戳的值的文件 我必须在特定时间后读取特定值 例如 文件有 2013 03 03 19 08 22 car 2001 Ford 2013 03 03 19 08 27 Truck 2012 Chevy 2013 03 03
  • ServiceStack 验证并不总是触发

    因此 我尝试使用 RavenDB 和 ServiceStack 构建端到端集成测试套件 但遇到了一个非常奇怪的问题 即验证无法对某些请求运行 这真的很奇怪 我不确定我做错了什么 我正在使用 NCrunch 有时测试通过 有时失败 希望这是一
  • 在主窗体上使用 BeginInvoke 调用的网络任务未执行

    我使用 Visual Studio 2013 构建了一个具有单个表单的 C 应用程序 并且该应用程序有两个更新屏幕的例程 更新屏幕的例程需要在主线程上运行 因此我自己的线程 不与屏幕交互 在需要更新时调用主窗体上的 BeginInvoke
  • 只允许在 datagridview 单元格中键入一些字符

    有没有办法只将某些字符添加到 datagridview 单元格中 像 1234567890 据我所知 您可以使用两种方法来实现此目的 第一个 我认为最好的 是使用 CellValidating 事件DataGridView并检查输入的文本是
  • 为什么不能使用 C# 对象初始值设定项语法调用方法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • VC++ 代码 DOM 可以从 VS 插件访问吗?

    Visual Studio IntelliSense for VC 包括 完整 EDG C 解析器 http www edg com location c frontend 英特尔和其他公司也使用 由于插件可以访问 C Code DOM 如
  • 使用 Entity Framework Code Only 和 ASP.NET MVC 的模块化应用程序

    我所说的模块化应用程序是指无需修改核心应用程序代码即可扩展基本功能和数据模型的应用程序 这是一种流行的方法 例如 开源 CRM 例如 SugarCRM 或 VTiger 在使用区域或 来自 MVC contrib 的可移植区域 的 ASP
  • docs.microsoft.com 上的 .NET 平台扩展是什么?

    Microsoft Docs 中有一个框架级导航元素 称为 NET 平台扩展 https learn microsoft com en us dotnet api index view dotnet plat ext 2 1 它包含有关最近
  • SQL 注入在 winform 中有效吗?

    我正在用 C 制作一个 Windows 软件 我读过关于sql injection但我没有发现它适用于我的应用程序 SQL 注入在 winform 中有效吗 如果是的话如何预防 EDIT 我正在使用文本框来读取用户名和密码 通过使用 tex

随机推荐

  • 如何修复错误:spawnSync powershell.exe ENOENT

    我想使用以下命令通过提升的 PowerShell 控制台安装 Windows 构建工具 npm install global production windows build tools 但每次运行时我都会收到以下错误npm install
  • 如何解决这个java.lang.RuntimeException?

    Google 开发者控制台显示我的应用程序在过去一个月中收到了两个相同的错误 但是这个RuntimeException没有指定错误源自的类或文件 我看不出什么具体的东西 以下是两种不同设备的错误 三星 Galaxy S8 Active cr
  • 在反应本机地图上显示用户位置

    如何在 React Native 地图上显示用户位置
  • 如何以编程方式更改 log4j2 中的 AppenderRef Level?

    我怎样才能改变AppenderRef Level在 log4j2 中 有一个堆栈溢出问题 https stackoverflow com questions 41427352 带答案 这是通过非编程方式解决的 我想要相同的但以编程方式代替
  • Google App Engine 是否识别并使用 .htaccess 文件?

    我正在使用 Google App Engine Launcher 在本地测试我的应用程序localhost 8080 我猜 Google App Engine Launcher 使用 Python 在本地运行服务器 但我读过 htacces
  • 如何将 ChromeDriver 包含在 JAR 中?

    我正在编写一个网络自动化程序 到目前为止 它使用 Selenium 的 FirefoxDriver 运行良好 但是 如果未安装 Firefox 我想让它使用 Chrome 我下载了 ChromeDriver 将其放入 Eclipse 项目的
  • 如何在android中录制视频的同时在视频上绘图,并保存视频和绘图?

    我正在尝试开发一款应用程序 允许我在录制视频时在视频上绘图 然后将录制内容和视频保存在一个 mp4 文件中以供以后使用 另外 我想使用camera2库 特别是我需要我的应用程序在高于API 21的设备上运行 并且我总是避免使用已弃用的库 我
  • 在 WPF 应用程序中绑定可为 null 的日期时间

    我有一个 wpf 应用程序 其中我有这个属性绑定到日期选择器 public Nullable
  • Swift 4 编程三引号

    当他们说 它与结束引用的缩进匹配时 是什么意思 对于占用多行的字符串 请使用三个双引号 只要与结束引号的缩进相匹配 每个带引号的行开头的缩进就会被删除 例如 让引号 虽然左边有空格 实际的行没有缩进 除了这一行 双引号 可以出现而无需转义
  • 查找图像列表的中值

    如果我有一个由 3D ndarray 表示的图像列表 例如 x y color 我可以使用哪些操作来输出具有所有值中值的图像 我正在使用 for 循环 发现它太慢了 这是我使用的矢量化实现NumPy http www numpy org 在
  • 如何在带有流星的车把助手中使用多个参数?

    我正在尝试使用 Meteor 创建一个自定义助手 以下是此处的文档 https github com meteor meteor wiki Handlebars https github com meteor meteor wiki Han
  • UIButton 和外观 API - 支持与否?

    根据UIAppearance协议参考 http developer apple com library ios documentation UIKit Reference UIAppearance Protocol Reference Re
  • GCF 部署失败(区域/计费)

    我无法再部署功能 即使在其他项目上也是如此 我一如既往地部署gcloud functions deploy 现在我收到这个错误 Failed to initialize region action ID 5a9a2fb704b2df80 E
  • 在 Rails 5 应用程序记录类中包含一个模块

    我正在使用应用程序记录来简化整个应用程序的共享逻辑 下面是一个编写布尔值及其逆的范围的示例 这效果很好 class ApplicationRecord lt ActiveRecord Base self abstract class tru
  • 根据条件替换数据框中的行

    我有以下数据框 id f1 f2 1 a 1 3 2 b 3 5 3 c 4 7 我想用一行替换 f1 gt 3 的所有行 id x f1 0 f2 0 所以上面的内容会映射到 id f1 f2 1 a 1 3 2 b 3 5 3 x 0
  • C# 的 switch 语句区分大小写。有没有办法切换它,使其不区分大小写? [复制]

    这个问题在这里已经有答案了 C 的 switch 语句区分大小写 有没有办法切换它 使其不区分大小写 谢谢 但是 我不喜欢这些解决方案 因为 case 条件将是一个变量 并且我不知道它们是否都是 UPPER 或 lower 是的 使用ToL
  • 如何在交叉验证和GridSearchCV中实现SMOTE

    我对 Python 比较陌生 您能帮助我将 SMOTE 的实施改进为适当的管道吗 我想要的是在每次 k 次迭代的训练集上应用过采样和欠采样 以便模型在平衡的数据集上进行训练 并在不平衡的遗漏部分上进行评估 问题是 当我这样做时 我无法使用熟
  • 如何使 json 数据可用于我的 Vue 动态路由

    我有一个List我从中获取日期的组件db blogs json created fetch http localhost 3000 blogs then response gt return response json then data
  • 迭代索引属性(反射)

    我想迭代只能通过反射访问的索引属性 但是 我是在充分了解可能有一个令人尴尬的简单答案的情况下才这么说的 MSDN Google失败 除了在PropertyInfo GetValue prop counter 直到TargetInvocati
  • WhereNot linq 表达式

    我正在尝试创建一个扩展 WhereNot 所以我可以使用 Dim x Hello world Dim y x Split WhereNot AddressOf String IsNullOrEmpty 请注意 我的目标是学习 linq 表达