今回の記事ではデータテーブル変数の行を削除するための一般的な方法を2通りご紹介します。

データテーブルから行を削除する際には、[データ行を削除] アクティビティを使用します。
しかし、[繰り返し (各行)] アクティビティの中で直接行を削除すると、コレクションが変更されてしまい、エラーが発生します。

ランタイム実行エラー
今回の記事では行を削除するための一般的な方法を実際の実装方法も含め2通りご紹介します。

【前提条件】
使用するデータテーブル:氏名、部署名。2カラムで構成されるデータテーブル
部署名が人事部のデータ行を削除

①削除する行を一時的なリストに追加してから、繰り返し処理の外で一括で削除する方法

1. 変数 liRemovedRows を List<System.DataRow> 型で作成します。これは削除する行を一時的に格納するためのリストです。

2. [繰り返し (各行)] アクティビティを使用してデータテーブルをループ処理します。

3. ループ内で、削除条件に合致するかを判断するためのロジックを実装します。

4. 条件に合致する行が見つかった場合、その行を liRemovedRows リストに追加します。

5. [繰り返し (各行)] アクティビティの外で、[繰り返し (コレクションの各要素)] アクティビティを使用して liRemovedRows リストをループ処理します。
※その際[繰り返し (各行)] アクティビティのプロパティパネル「TypeArgument」はSystem.Data.Rowを設定します。

6. ループ内で、[データ行を削除] アクティビティを使用して、リストに追加された行をデータテーブルから削除します。

削除する行を一時的なリストに追加してから、繰り返し処理の外で一括で削除する方法

 

②.Selectメソッドを使用し、[繰り返し (コレクションの各要素)] アクティビティのループ内で行を削除する方法

1. [繰り返し (コレクションの各要素)] アクティビティを使用し、プロパティパネルの「値」にデータテーブル変数.Select()を、「TypeArgument」にSystem.DataRowを設定します。

2. ループ内で、削除条件に合致するかを判断するためのロジックを実装します。

3. 条件に合致する行が見つかった場合、[データ行を削除] アクティビティを使用して、データテーブルから削除します。

.Selectメソッドを使用し、[繰り返し (コレクションの各要素)] アクティビティのループ内で行を削除する方法