見出し画像

よく使うvb関数/linqメモ…

こんにちは!

WF開発で、あ~~~よく使うなぁ~と思う関数をピックアップしました。

UiPath Studioを始めた後輩さん達も「RPAで関数をこんなに使うなんて…」とちょっぴりオコな感情をもってます。あとは、アクティビティが沢山並ぶのを嫌がる後輩さん達の声など聴いて…

ならコーディングしろよ!って声が聞こえてきそうですが…( ´∀` ;)

案件先では、よくEUC向けにVB関数集なんか作ったりしてたけど、なんか自分の後輩さん達とかに作ってあげなかったな~とダメな先輩を反省し…

参考がてらに使ってみてください (*´▽`*)

■データテーブルの任意の列のデータタイプを知りたいとき
 dtTest.Columns("列名").DataType.ToString()
■ディレクトリ内のフォルダを含めたファイル/フォルダの一覧を取得したいとき
Directory.GetFilesSystemEntries(strFolderPath,"*")
※カッコ内の""にワイルドカードを記載してますが、ファイル名や拡張子なども記載できます
■確実に改行で区切りたいとき
文字列.Replace(vbCrLf,vbLf).Split({vbLf(0),vbCr(0)})
※文字列からデータテーブルを生成する時に超便利…
※vbCrLfだけでSplitするとvbLfとか残ってる時がある
■1文字ではなく文字列で区切りたいとき
 文字列.Split(New String(){"区切り文字列"},StringSplitOptions.None)
※二文字以上の言葉で区切りたいときに便利!
■データ列をリストに抽出したいとき
liColumns=dtTest.Columns.Cast(Of DataColumn)
※カラム名をループに入れて変換したかったりする時に便利!
■リストの要素に初期値をセットして宣言
New List(Of String)(New String(){"文字1","文字2","文字3"})
■配列内の要素値のインデックス番号を取得したい
 VB関数だと
 Array.IndexOf(arr,"検索値")
 Linqだと
 Array.FindIndex(arr,Function(s) s.Contains("検索値"))
※インデックスなので、戻り値はIntになります
■配列内に指定文字列があるかどうか確認したいとき(linq)
arr.Any(Function(s) s.Contains("検索値"))
※Boolean値を返します
■データテーブルから特定の列を抽出したデータテーブルを生成
dtNewDataTable=dtOriginalDataTable.Defaultview.ToTable(False,"列名")
※抽出したい列名が複数の場合は文字列配列で列名を指定しましょう
※書き込み先へ、読み込みデータテーブルの特定の列を書き込む際に便利
■カラムを指定して合算したいとき(linq)
row("合計")=li_Columns.Where(function(s) s.ColumnName.Contains("_購入金額")).Sum(Decimal.Parse(row(s).ToString))
※上記はForEachRowで使用時を想定
※下記、テーブルの集計イメージ

画像1

■List内の順番を昇順に変えたいたいとき(linq)
liTest.OrderBy(Function(s) s).ToList()
■データテーブルの一行目を配列に変換したい場合(linq)
dtTest.Rows(0).ItemArray.OfType(Of Object).Select(Function(s) If(IsDbNull(s),String.empty,s.ToString)).ToArray()

とりあえず…これだけ…メモから取り出して書いてみたよ…

でも、関数使う時の注意点です…


あんまり、使いすぎると…闇の深い代入アクティビティーのオンパレードになりますのでご注意を!!!

この記事が気に入ったらサポートをしてみませんか?