gpt4 book ai didi

c# - 否定 `.Where()` LINQ 表达式

转载 作者:太空狗 更新时间:2023-10-29 22:21:28 25 4
gpt4 key购买 nike

我知道您可以执行以下操作:

enumerable.Where(MethodGroup).DoSomething();

并且这实现了与以下相同的事情:

enumerable.Where(x => MyMethod(x)).DoSomething();

但是,我希望实现与此相反的操作,并选择该方法返回 false 的项目。对于第二种情况,如何做到这一点是显而易见的:

enumerable.Where(x => !MyMethod(x)).DoSomething();

然而,首先,情况并非如此,因为您不能将 ! 运算符应用于 MethodGroup。是否有可能以类似的方式使用 MethodGroups 实现这种“.WhereNot”效果,或者我是否必须自己滚动(或使用 lambda)?

最佳答案

您可以创建一个辅助方法:

public static Func<T, bool> Not<T>(Func<T, bool> method) 
{
return x => !method(x);
}

那么用法就会和你想要的很相似:

someEnumerable.Where(Not(MyMethod)).DoSomething();

关于c# - 否定 `.Where()` LINQ 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com