DataTable insertRows
키없이 데이터를 정규화하고 싶습니다. 그렇게하려면 ID (import_id
)를 찾아 중복 기록을 확인하고 표시해야합니다. 그 후에 나는 별개의 것들만 선택할 것입니다. 내가 생각하고있는 접근법은 해당 행의 각 행을 해당 DataTable의 모든 행과 비교하는 것입니다. insertRows
DataTable의 모든 행을 비교 - 중복 레코드 식별
DataTable의 열은 디자인 타임에 알려지지 않았고 키가 없습니다. 성능면에서는 테이블이 10k에서 20k 레코드와 약 40 개의 열을 가지게됩니다.
성능을 크게 저하시키지 않으면 어떻게 달성 할 수 있습니까?
내가 LINQ를 사용하여 시도했지만 동적으로 내가 각 행에 대해 루프에서 이름과 성을 비교하고 여기에 를 Where 기준
foreach (System.Data.DataRow lrows in importDataTable.Rows)
{
IEnumerable<System.Data.DataRow> insertRows = importDataTable.Rows.Cast<System.Data.DataRow>();
var col_matches =
from irows in insertRows
where
String.Compare(irows["fname"].ToString(), lrows["fname"].ToString(), true).Equals(0)
&&
String.Compare(irows["last_name"].ToString(), lrows["last_name"].ToString(),true).Equals(0)
select new { import_id = irows["import_id"].ToString() };
}
모든 아이디어를 환영을 지정하는 방법을 알고하지 않았다 . linq을 사용하여 유사한 열 이름을 찾으려면 어떻게해야합니까?> 내 비슷한 질문
질문을 편집하고 "community wiki"의 선택을 취소하십시오 –
이 게시물은 커뮤니티 위키이므로 어떤 투표도받지 못합니까? –
위키를 선택 취소 할 수 없습니다. 죄송합니다. – kiev