如何使用LINQ实现两个数组各元素两两相加求和功能
两个数组元素两两相加的LINQ实现方案
你原有嵌套循环的逻辑是求两个数组的笛卡尔积后对每组元素求和,LINQ有两种常用实现方式,和原有代码的执行结果完全一致:
1. 查询语法写法(逻辑更贴近嵌套循环,可读性更高)
var currentSums = (from firstItem in firstArray from secondItem in secondArray select firstItem + secondItem).ToList();
两层from子句对应原代码的两层循环,分别遍历两个数组的所有元素,相加后返回结果。
2. 方法链写法(更简洁的链式调用写法)
var currentSums = firstArray .SelectMany(firstItem => secondArray.Select(secondItem => firstItem + secondItem)) .ToList();
通过SelectMany展开嵌套的遍历逻辑,直接生成所有两两相加的结果集合。
以上两种实现和你原有的嵌套循环逻辑完全等价,执行效率无显著差异,最终返回的List<int>结果完全一致。
内容的提问来源于stack exchange,提问作者Matvey
相关产品推荐
相关产品推荐

