添加两个具有相同结构的列表 C#

Suz*_*ane 1 c# linq lambda

所以这是我面临的一个问题 - 我有两个具有以下结构的列表

   public class Payment
      {
        public int Period { get; set; }
        public decimal Balance{ get; set; }
      }
Run Code Online (Sandbox Code Playgroud)

我创建了以下两个列表,如下所示

 List<Payment> A = new  List<Payment>();
 List<Payment> B = new  List<Payment>();
Run Code Online (Sandbox Code Playgroud)

该列表看起来像这样。

   List A                     List B
Perid  Payment             Perid  Payment
1        10                1         16
2        12                2         13  
3        45                3         44 
4        23                4         33
5        36                5         34
6        45                6         35
Run Code Online (Sandbox Code Playgroud)

我正在尝试从列表 A、B 添加这两个付款,并创建第三个列表,该列表应具有相同的结构。

       List C
 Perid  Payment
  1      10+16
  2      12+13   
  3      45+44  
  4      23+33
  5      36+34
  6      45+35
Run Code Online (Sandbox Code Playgroud)

我理解 for 循环是可能的,但是是否可以以更简单的方式使用 Linq OR Lambda 表达式?非常感谢任何帮助。

Jun*_*ire 5

尝试 LINQ 的 Zip 方法。它可以帮助您同时迭代两个集合。

这是一个例子 -

using System;
using System.Linq;

class Program
{
    static void Main()
    {
       // Two source arrays.
       var array1 = new int[] { 1, 2, 3, 4, 5 };
       var array2 = new int[] { 6, 7, 8, 9, 10 };

       // Add elements at each position together.
       var zip = array1.Zip(array2, (a, b) => (a + b));

       // Look at results.
       foreach (var value in zip)
       {
           Console.WriteLine(value);
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 在你的答案中添加一个例子会让它对其他人更有用。 (3认同)