以下代码是授权的一部分。我正在尝试从心理上想象它的实际作用,但无法以某种方式。
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
的类型,这很可能行不通,但我希望它是正确的。