以下代码是授权的一部分.我试图精神成像它实际上做了什么,但不能以某种方式.
IsAuthorized = ((x, y) => x.Any(z => y.Contains(z)));
Run Code Online (Sandbox Code Playgroud)
有人能向我解释这个lambda表达吗?
谢谢!
编辑:
IsAuthorized是委托类型.编写此代码的前一个程序员似乎希望通过将委托放在cs文件的末尾来保密.
实际代码是:
public delegate bool IsAuthorized(IEnumerable<Int32> required, IEnumerable<Int32> has);
IsAuthorized = ((x, y) => x.Any(z => y.Contains(z)));
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 15
当然 - 它说给定一对(x, y),确实x包含任何y包含该值的值.
在我看来,它真的在说" x和之间是否有任何交集y".
所以另一种选择可能是:
IsAuthorized = (x, y) => x.Intersect(y).Any();
Run Code Online (Sandbox Code Playgroud)
根据类型的不同,这可能不会起作用IsAuthorized,但我希望它是正确的.