AccountInformation에 세 가지 속성이있는 List를 사용하고 있습니다.
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] 삭제
몇 마디 만하겠습니다