Excel에서 비정규화된 레코드 집합을로드하는 상황이 있습니다. 각 행을 하나씩 끌어 와서 한 번에 하나씩 개체를 만듭니다. 각 행에는 회사 및/또는 클라이언트가 포함될 수 있습니다.C#은 런타임에 두 개체를 병합합니다.
내 문제는 여러 행에 동일한 개체가있을 수 있으므로 이미 작성했을 수 있습니다. 나는 그것이 이미 목록에 있는지보기 위해 비교를합니다. 그렇다면 두 번째 행에서 새로운 정보를 얻지 못하게하기 위해 두 객체를 병합해야합니다.
그렇게 :
company - client - address - phone
----------------------------------------
mycompany - - myaddress -
mycompnay - myclient - - myphone
그래서 첫 번째 행 "myaddress"의 주소와 회사 객체를 생성한다. 두 번째 행은 내 회사 규칙에 따라 이름이 같은 회사 인 다른 회사 개체를 만듭니다. 여기에는 클라이언트 참조와 전화 번호가 있습니다.
그래서 나는 그것들이 동일하지만 모든 데이터가 하나의 객체에 병합되어 있는지 확인해야합니다.
현재 두 개체를 모두 사용하는 유틸리티 클래스를 만듭니다 (하나는 기본이고 다른 하나는 병합되므로 충돌이 발생하면 우선 순위가 있습니다), 각 변수를 통해 값을 할당합니다 어떤 것이 있으면. 이것은 무거운 약간의 보일러 판이고 나는 수동 작업을하기 위해 활용할 수있는 유틸리티가있을 것으로 기대하고있었습니다.
이 예제는 다른 몇 가지 변수가 매우 간단하고 몇 가지 기본 유형과 더 복잡한 항목이 있으므로 단순화되었습니다.
최대 2 개의 개체가 병합되어야합니까? 동일한 열/속성이 두 번 정의되면 어떻게 될까요? 하나만 무시하면 위험하다.? – Achim
그들은 내가 찾은 일치 항목을 병합하는 순간 컬렉션을 반복합니다. 이론적으로 컬렉션을 통해 여러 개의 일치가있을 수 있지만 각 병합은 한 번에 하나씩 완료됩니다. 사용자가 잘못된 데이터를 입력하여 여러 필드 때문에 값을 잃어 버리면 주변에서 볼 수 없습니다. – Jon