查找連續的行到組對於基於3列的列表(實際上是一個數據表,但是爲了簡單起見),其中第一列真正以整數形式表示財政年度。我需要在所有行組:根據任意
- 當前財年的第二列(服務)等於1,
- 下財年等於1,並且任何連續財年有1作爲那麼服務
最終的結果組將合併了所有連續的會計年度有1作爲服務,通過採取第一年,集團開始了,去年它在總結服務和收益結束。
var list = new List(){
{20002001, 1 , 100.00},
{20012002, .5 , 100.00},
{20022003, 1.0 , 100.00},
{20042005, 1.0 , 50.00},
{20052006, 1.0 , 50.00
};
應該產生的結果:
20002001, 1 , 100.00
20012002, 1 , 100.00
20022006, 3 , 200.00
這不是一個清晰的例子關的工作,但也許會揭示什麼,我試圖努力的方向燈:
var test = from r in list
where r.Item("FiscalYear") + 10001 = list.SkipWhile(r2 => !r.Equals(current)).Skip(1).FirstOrDefault(r3 => r3.Item("FiscalYear")) &&
r.Item("Service") = 1 &&
list.SkipWhile(r2 => !r.Equals(current)).Skip(1).FirstOrDefault(r => r.Item("Service") = 1D)
Select New { FiscalYear = $"{r.Item("FiscalYear") % 1000}{I have NO IDEA HOW TO DETERMINE THIS PART}", Service = list.Sum(r => r.Item("FiscalYear"), Earnings = list.Sum(r => r.Item("Earnings"))
假設下一步將從http://www.herlitz.nu/2011/12/01/getting-the-previous-and-next-record-from-list-using-linq/工作。但它在我的場景中不起作用。
我已經考慮了一個我可以做的小組,除非我錯過了正確的計算方法來分組會計年度。