データテーブルで日付、名前、番号というフィールドがあった場合に日付と名前が同一のレコードがあったとき番号が異なるときもレコード削除を行いたいのですが重複行の削除アクティビティでは全項目が一致しないと削除出来ず困っています。
いろいろ調べて代入アクティビティで式でやろうとしているのですが複数条件のときの式が分からずお知恵をお借りしたいです。
ご存知の方がみえましたらよろしくお願いします。
こんにちは
実現したいことは、日付と名前の重複行があった場合、
・すべての該当行を削除したい
あるいは
・1行のみを残して重複ではないようにする
のいずれになりますでしょうか?
後者の場合は、どの行を残すかの情報が必要になります。
返信ありがとうございます。
説明不足ですみません。
前者になります。
こんにちは
やり方はいくつかあるかと思いますが、以下一例です。
dt.AsEnumerable.GroupBy(Function(r) Tuple.Create(r("日付").ToString,r("名前").ToString)).Where(Function(g) g.Count=1).Select(function(g) g.First()).CopyToDataTable()
Sample20210819-3.zip (7.4 KB)
ありがとうございます。実現できました。
もしよろしければ後者のパターンの重複がでたら1レコード残す場合も教えていただきたいです。残す条件は先に出てきたレコードで構いません。
すみませんがよろしくお願いします。
こんにちは
以下お試しください。
dt = dt.AsEnumerable.GroupBy(Function(r) Tuple.Create(r("日付").ToString,r("名前").ToString)).Select(function(g) g.First()).CopyToDataTable()