查找集合中所有可被另一个集合的数字整除的数字

时间:2018-10-05 21:53:48

标签: c#

我的任务是找到一个集合中的哪些整数可以与另一个集合中的其他整数整除。我正在尝试使用谓词和函数来解决这个问题,但是我有点卡住了。为什么这不起作用?

Func<List<int>, List<int>, List<int>> func = (x, y) => x.Where(n => y.All(m => m % n == 0)).ToList();

我需要返回一个整数列表

1 个答案:

答案 0 :(得分:3)

您在支票中交换了nm,因此您将返回n中的所有值(x),其中y中的所有值均为被n整除。您可以给变量取更好的名称,以帮助防止这些错误:

Func<List<int>, List<int>, List<int>> func = 
    (dividends, divisors) => dividends.Where( 
         dividend => divisors.All(divisor => dividend % divisor == 0)
    ).ToList();