はじめに
この投稿は、RPAツール「UiPath」で Datatable から「重複行の削除」をする方法について、個人的にまとめたものです。
UiPathブログ発信チャレンジ の 23日目の記事です。
「UiPath Friends もくもく会 2022年07月開催 2022-07-23(土)9:00 - 12:00」で書きました。
データテーブルの操作 シリーズ
DataTable の操作方法について記載した記事が、他にもあります。参考まで。
重複の削除方法
DataTable 内で、以下のように「内容が重複している行」があることがあります。
- パターンA)行単位で重複している(全ての列で内容が同じ)
- パターンB)列の一部で重複している(一部の列で内容が同じ)
上記のような重複している行を「削除」する方法は、以下があります。
- 1)「重複行を削除」アクティビティで、重複を削除
- 2).NET の「DataView」で重複を削除
- 3)Linqの「Distinct」で、重複を削除
- 4)Linqの「GroupBy」で、重複を削除
以下で順に説明します。
1)「重複行を削除」アクティビティで、重複を削除
標準アクティビティにある「重複行を削除」アクティビティを使えば、行単位で重複している行を自動で削除できます
一部の列だけを対象にしたい場合は、使用できません。
が、多くのケースでは、このアクティビティの使用でOKでしょう。
2).NET の「DataView」で重複を削除
.NETの機能の「DataView」という便利な「検索・編集・並び替え」機能を使用すると「指定列」で重複を取り除いた形に編集できます。
指定しない列は消えてしまいます。
指定しない列を「残したい」場合は、以下に紹介する方法で実施する必要があります。
3)Linqの「Distinct」で、重複を削除
「行単位」でユニークに(重複を削除)したいなら、Linqの「Distinct」を使うと簡単です。
引数に「DataRowComparer.Default」を使用すると、データテーブルで重複する行を削除できます。
4)Linqの「GroupBy」で、重複を削除
「指定列」でユニークに(重複を削除)したいなら、LinqのGroupByで集計した結果の1つ目を取得すれば出来ます。
終わりに
以上、DataTableの重複行の削除方法について、でした。なにかの役に立てば幸いです。
この記事が参考になったら、 LGTMをお願いします。閲覧ありがとうございました。