我的任务是找到一个集合中的哪些整数可以与另一个集合中的其他整数整除。我正在尝试使用谓词和函数来解决这个问题,但是我有点卡住了。为什么这不起作用?
Func<List<int>, List<int>, List<int>> func = (x, y) => x.Where(n => y.All(m => m % n == 0)).ToList();
我需要返回一个整数列表
答案 0 :(得分:3)
您在支票中交换了n
和m
,因此您将返回n
中的所有值(x
),其中y
中的所有值均为被n
整除。您可以给变量取更好的名称,以帮助防止这些错误:
Func<List<int>, List<int>, List<int>> func =
(dividends, divisors) => dividends.Where(
dividend => divisors.All(divisor => dividend % divisor == 0)
).ToList();