我正在使用List,其中AccountInformation具有三个属性
public class AccountInformation
{
public string AccountNumber{ get; set; }
public int StartDate { get; set; }
public int EndDate{ get; set; }
}
现在,我正在获取类似这样的数据列表
AccountNumber StartDate EndDate
AC1 20150101 20150110
AC1 20150110 20150111
AC1 20150111 20150112
AC2 20150112 20150115
AC1 20150116 20150120
AC1 20150121 20150125
AC2 20150125 20150130
AC2 20150130 20150205
现在我需要以以下方式将这些数据作为最终输出
AccountNumber StartDate EndDate
AC1 20150101 20150111
AC2 20150112 20150115
AC1 20150116 20150120
AC1 20150121 20150125
AC2 20150125 20150005
意味着无论我在哪里获得连续的AccountNumber都一样,并且第一行的EndDate与下一行的StartDate相同,我需要合并这些行。
任何帮助表示赞赏。
int outer = 0;
while (outer < accInfo.Count - 1)
{
if (accInfo[outer].AccountNumber == accInfo[outer + 1].AccountNumber && accInfo[outer].EndDate == accInfo[outer + 1].StartDate)
{
if (resultAccInfo.Count == 0)
{
resultAccInfo.Add(new AccountInformation()
{
AccountNumber = accInfo[outer].AccountNumber,
StartDate = accInfo[outer].StartDate,
EndDate = accInfo[outer + 1].EndDate
});
}
else
{
resultAccInfo[resultAccInfo.Count - 1].EndDate = accInfo[outer + 1].EndDate;
}
outer++;
}
else
{
resultAccInfo.Add(new AccountInformation()
{
AccountNumber = accInfo[outer + 1].AccountNumber,
StartDate = accInfo[outer + 1].StartDate,
EndDate = accInfo[outer + 1].EndDate
});
outer++;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句