- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
下面的代码是授权的一部分。我试图在脑海中想象它实际做了什么,但不知何故无法想象。
IsAuthorized = ((x, y) => x.Any(z => y.Contains(z)));
谁能给我解释一下这个 lambda 表达式?
谢谢!
编辑:
IsAuthorized 是委托(delegate)类型。以前编写此代码的程序员似乎想通过将委托(delegate)放在 cs 文件的末尾来保密。
实际代码是:
public delegate bool IsAuthorized(IEnumerable<Int32> required, IEnumerable<Int32> has);
IsAuthorized = ((x, y) => x.Any(z => y.Contains(z)));
最佳答案
当然 - 它是说给定一对 (x, y)
,x
是否包含任何值使得 y
包含该值。
在我看来,它真的是在说“x
和 y
之间是否有交集”。
所以替代方案可能是:
IsAuthorized = (x, y) => x.Intersect(y).Any();
这可能行不通,具体取决于 IsAuthorized
的类型,但我希望它是正确的。
关于c# - 谁能给我解释一下这个 lambda 表达式?这让我发疯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272638/
我使用的是 C# 3.5 和 VS 2010 旗舰版。 我正在优化(为了提高速度)具有四个嵌套 for 循环的机器学习算法。我发现一个简单的缓存(一个对象的张量)可能会极大地提高性能,因为有很多相同对
所以我有一个输入文件,其中包含以下文本(每行=用户): 012345678;danny;cohen;22;M;danny1993;123;1,2,4,8;Nice person 223325222;o
我不知道这里发生了什么。我做了一个简单的应用程序,它有一个成员类。 这是我的代码,其行为符合预期。这里没什么好看的。主类使用构造函数初始化成员类并调用成员方法。 @Override protected
看看我的新闻滚筒: LIVE DEMO 一切正常,直到您将 scipt 留在选项卡中几分钟。 正在发生的事情看起来像是浏览器每 5 秒丢失一次计数并且不断执行操作。 我猜它与setTimeout有关。
我在一周的大部分时间里都在尝试这样做,但仍然没有成功。 我有一个带有选项卡的操作栏(操作栏 sherlock),我可以在选项卡之间切换并更改 fragment 。 每个 fragment 都有一个 w
我正在使用名为 Raylib 的库开发桌面应用程序,对于那些不知道 Raylib 是什么的人来说,它是一个用于制作游戏的开源渲染 API。默认情况下,Raylib 不允许您调整大小或最大化为窗口。为了
我是一名优秀的程序员,十分优秀!