유지보수 cost때문에 Linq를 아주 권장하지는 않지만,
row의 type으로 인한 이슈나 속도 이슈를 막기 위해서,
꼭 써야될 때가 있다.
특히 datatable간의 비교가 많은데 다음과 같은 경우 2개가 질문이 많이 나오는 걸로 보인다.
[상황1] dtData1의 키값이 dtData2의 키컬럼에 존재하는 경우 포함[키컬럼 type은 int]
[Assign] dtOutput = (from row1 in dtData1.AsEnumerable()
join row2 in dtData2.AsEnumerable() on row1.Field<int>("Key") equals row2.Field<int>("Key")
select row1).CopyToDataTable()
[상황2] dtData1의 키값이 dtData2의 키컬럼에 존재하는 경우 미포함[키컬럼 type은 int]
[Assign] TempKeys = (dtData2.AsEnumerable().Select(row => row.Field<int>("Key"))).ToArray()
[Assign] dtOutput = (dtData1.AsEnumerable().Where(row => !tempjoin.Contains(row.Field<int>("Key")))).CopyToDataTable()
'RPA Uipath' 카테고리의 다른 글
[Uipath] Office 365 Secured SMTP 설정 (0) | 2023.10.06 |
---|---|
[Uipath] Find children으로 UiElement의 속성값 가져오기 (0) | 2023.09.13 |
[Uipath] Excel Application Scope: 통합 문서를 여는 동안 오류가 발생했습니다. Excel이 설치된 경우 홈 화면의 도구 탭에서 'Microsoft Office Interop용 복구 도구'를 실행하십시오. (0) | 2023.03.15 |
[Uipath] DataTable to JSON & JSON to DataTable (0) | 2023.03.06 |
[Uipath] Data Scraping에 대해[2023-03-02 수정] (1) | 2023.01.17 |