DataTable insertRows
キーなしでデータを正規化したいのですが。そのためには、ID()を見つけて、重複するレコードを識別してマークを付ける必要がありますimport_id
。その後、個別のもののみを選択します。私が考えているアプローチは、各行をそのDataTableのすべての行と比較することです insertRows
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を使用して類似の列名を見つけるにはどうすればよいですか?>類似の質問