c# list aggregate calculations alghoritm
下列情况:P></
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class Data { public Data() { Details = new List<Details>(); } public List<Details> Details {get; set;} } public class Details { public Details() { } public decimal A {get; set;} public decimal B {get, set;} } |
在以后的代码:P></
1 2 3 4 5 6 7 |
现在看这样:Will the listP></
1 2 3 4 5 6 | Item 1: A = 2 , B = 0 Item 2: A = 2 , B = 0 Item 3: A = 2 , B = 0 Item 4: A = 2 , B = 0 ..... Item N: A = 2 , B = 0 |
知识产权价值calculate the B可以这样:P></
P></
基本上:P></
item 1 is the starting点和有任何价值。P></
item 1 b值将永远be the same as item 1P></
2可以在任何itemP></
item item 1 b 2 b = 2 + itemP></
3可以在任何itemP></
item item 2 3 B = B + item 3P></
我和等等。P></
how可以迭代通过列表B & the automatically calculate the property value of the items?P></
应该这样做:
1 2 3 4 5 6 | var prev = new Details(); foreach (var item in dt.Details) { item.B = item.A + prev.B; prev = item; } |
似乎您只需要在每个变量中存储一个连续和。为此,只需修改一个正常的运行和方法,并将其存储到
1 2 3 4 5 6 7 | decimal currentSum = 0; for (int i = 0; i < detailList.Count; i++) { var detail = detailList[i]; currentSum += detail.A; detail.B = currentSum; } |
由于您提到您不经常进行这种计算(您的列表不会经常更改),所以这应该不仅仅是处理工作。