对于A中的每个数字和B中的每个数字(如果它们的差异大于3),请添加新数字
A={6,7,10}
B={2,3}
result={4,5,4,8,7}
Run Code Online (Sandbox Code Playgroud)
例如 :
6-2 = 4真加4
6-3 = 3假
7-2 = 5真加5
我的尝试:
var result = A.Select((a, i) => new
{
desired = a - B[i] > 3 ? a - B[i] :0
});
Run Code Online (Sandbox Code Playgroud)
var query = from a in A
from b in B
where (a - b) > 3
select a - b;
Run Code Online (Sandbox Code Playgroud)
这听起来像你想要的:
var query = from a in A
from b in B
let diff = a - b
where diff > 3
select diff;
Run Code Online (Sandbox Code Playgroud)
或者用点符号表示,它真的很整齐:
var query = A.SelectMany(a => B, (a, b) => a - b)
.Where(x => x > 3);
Run Code Online (Sandbox Code Playgroud)
使用您的测试数据:
using System;
using System.Linq;
class Test
{
public static void Main()
{
int[] A = {6, 7, 10};
int[] B = {2, 3};
var query = A.SelectMany(a => B, (a, b) => a - b)
.Where(x => x > 3);
foreach (var result in query)
{
Console.WriteLine(result);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |