列表列表的嵌套算术运算

Nested arithmetic operation on a list of lists

我有一个 lstCmplx = List<List<CustomClass>>,自定义 Class 看起来像这样:

Public Class CustomClass
{
   Decimal Value {get, set }
   Action Op {get, set } //This is an enum of operations (Add, Multiply...)
}

对于lstCmplx中的每一个列表,我想将所有项的计算结果合并为一个值。 如果,例如:

var lst1 = new List<CustomClasss>() 
{ 
   Value = 10, Op = Action.Add
}

var lst2 = new List<CustomClasss>() 
{ 
   Value = 4, Op = Action.Multiply, 
   Value = 6, Op = Action.Subtract //Ignore last action
}

如果列表有一个项目(例如 lst1,计算将在 lstCmplx 中的下一个列表上使用它的操作)。如果list的item多于1个(lst2),list的item会根据lst中每个item的Action进行迭代计算,忽略最后一个action得到一个值。

典型的结果是 34,即 10 + [4 * 6]

我发现很难找到一种算法将它们链接在一起。请帮忙。

如果我理解正确,OP 建议的计算基本上是将列表视为将它们全部连接成一个大列表,那么为什么不连接列表然后 运行 计算一次呢?