【发布时间】:2021-04-08 15:54:15
【问题描述】:
我正在尝试创建一个 Linq 查询和一个 linq lambda 表单,它将返回一个数组的所有数字,该数组将是 x 和 y 的倍数。假设 4 和 6。数组看起来像这样: int[] multiple = (3, 6,, 8, 12, 16, 18, 19, 24, 26);
实际答案 linq 查询将返回:6、12、16、18、24,因为它们都是 4 和 6(x 和 y)的倍数。简而言之,所有不等于零的数字都可以被删除,反之亦然……类似的东西。最好同时获得这两种形式。
我是新手,所以我还没有:
int[] numbers = { 3, 6, 8, 12, 16, 18, 19, 24, 26 };
int[] multipleOf = number.Where((x) => multiple.All((y) => y % x == 0)).ToList();
【问题讨论】:
-
我有点困惑:你的意思是“x and y”还是“x or y”?您说两者,并且您的示例“实际答案”匹配“x 或 y”,但您的代码匹配“x 和 y”(如果我忽略语法错误
numbers != number) -
另外,请说明您当前的尝试没有达到您的期望以及“Classic linq”和“lambda”之间的区别是什么
-
我认为 OP 意味着方法语法与查询语法
-
我的意思是&&。这有点令人困惑。我确实删除了 x 和 y 之间的或。