各位大大,我有一个datatable表如下 现在想用linq进行这样的操作
将第二行的A1分别和A2,A3,A4相加但是相加的数以大于1000后要减去1000,然后比对第一行4个列中有没有相等数据的,有相等的就记录下来是哪个值相加后匹配的。在A1完成操作后然后第二行的A2也分别和A3,A4相加如刚才一样比对。之后是A3+A4比。然后第三行的也是这样操作。

比如这个表中,运行后的结果如下
行2 A1+A2 匹配 行1 A1
行2 A3+A4 匹配 行1 A4
行3 A1+A3 匹配 行1 A4
行3 A1+A4 匹配 行1 A2
请问应该如何实现。
------解决思路----------------------
int[] source =new int[]{1000,170,290,450} ;//这是你的第一行,单独提取出来
List<int[]> list = new List<int[]>()
{
new int[] { 360, 640, 850, 600 },//第二行
new int[]{520,782,930,650},//第三行
};
foreach (var arr in list)
{
for (var i = 0; i < arr.Length - 1; i++)
{
for (var j = i + 1; j < arr.Length; j++)
{//循环相加
var addResult = (arr[i] + arr[j]);
if (addResult > 1000)
{
addResult %= 1000;
}
if (source.Contains(addResult))//判断在第一行里有没有,如果你是要位置的话,需要自己调整下代码
{
Console.WriteLine("{0}+{1}={2}", arr[i], arr[j], addResult);
}
}
}
}