以下のようなコレクションを「フィールド1」列でソートしたい場合、Sort Collectionを使ってもうまくソートされません。
列の型がText型だからです。
なので、指定した列の型を強引にInteger型にしてソートするオブジェクトを作りました。
ベースはSort Collecctionです。
入力
出力
ソースコード
Try
Dim New_Collection As System.Data.DataTable
New_Collection = New DataTable()
For Each c As System.Data.DataColumn In Collection_In.Columns
If c.ColumnName = Sort_Field Then
New_Collection.Columns.Add(New DataColumn(Sort_Field, GetType(Integer)))
Else
New_Collection.Columns.Add(New DataColumn(c.ColumnName, GetType(String)))
End If
Next
For Each r As System.Data.DataRow In Collection_In.Rows
New_Collection.ImportRow(r)
Next
If Ascending Then
New_Collection.DefaultView.Sort = Sort_Field & " ASC"
Else
New_Collection.DefaultView.Sort = Sort_Field & " DESC"
End If
Sorted_Collection = New_Collection.DefaultView.ToTable
Success = True
Message = ""
Catch e As Exception
Success = False
Message = e.Message
End Try
サンプル
https://github.com/falcslab/blueprism/tree/collection
BPA オブジェクト – 数値でソート.xml