コレクションを使うときにmscorlib一択である理由

UiPath初心者です
どうしてコレクションを使う場合、変数の型としてsystem内のsystemcollection等ではなく、mscorlib配下のコレクションを使うのでしょうか?
他にも50種類以上のコレクションっぽい変数の型が用意されているのに、mscorlib一択なのだとしたら、それはどうしてなのでしょうか。

UiPathと親和性が高いからではないでしょうか?

こんにちは

どうしてコレクションを使う場合、変数の型としてsystem内のsystemcollection等ではなく、mscorlib配下のコレクションを使うのでしょうか?

System.Collections.Genericはmscorlib配下なので、同じものを指しているようにも思えますが。

あとコレクションはList<T>一択である必要はなく、IEnumerable<T>等がアクティビティの出力として使われているケースもあります。また他の名前空間のクラスを使ってもよいと思いますが、あとは利用用途次第で判断すればよいと思います。(加えて.net frameworkの基本ライブラリに含まれているクラスの方が、一般的に安定性や情報量等で有利に働くと思います。)

1 Like

こんにちは
たびたびすみません

System.Collections以下というのが例えばArrayList等を指しているなら、List<T>の方がArrayListに比べて効率的に処理できるからというのが大きな理由になります。(ArrayListはObject型しか格納できないため)。なぜArrayListがあるかというと、これは歴史的経緯で、まずArrayListが作られ、その後List<T>のようなGeneric型が追加されたためとなっています。

2 Likes

遅くなってしまいすみません。
詳しく教えてくださりありがとうございます。
コレクションを利用するときは、いろいろ調べてみてもmscorlib配下のSystem.Collections.Genericを使うのが常識みたいになっているように感じました。
しかしUiPathではコレクションや配列っぽい変数の型が100~200種類くらい?膨大な数が用意されてますよね。
そのため最初のうちは「mscorlib配下のSystem.Collections.Generic」と暗記していないとすぐに使うことができません(いつもmscorlibから探すということを忘れてしまいます)。
それならコレクションについては最初から「mscorlib配下のSystem.Collections.Generic」だけあればいいのでは?と思いましたが、それぞれ差異があるので、状況や用途に応じてこれら100種類以上の型を使い分ける必要があるということでしょうか。
コレクションに関わる型でこれほどまでに膨大な数の種類の型が用意されているソフトは他に類をみないと思ったので不思議に思いました

こんにちは

これはUiPathというよりは .net frameworkの世界なので多様な型が存在しているということに
なります。

自から積極的に定義して使うのはまずは以下あたりかと思いますので、
これらを覚え(名前空間を覚えなくても以下検索窓で入力すると出ていると思います。)

Array 
List<T>
Dictionary<TKey,TValue> 

他の型は、メソッドの戻り値やプロパティ値で使われる(指定される)ケースが多いので、
必要になれば、それを設定もしくはCTRL+Kで自動生成してあげると良いように思えます。

1 Like

他の型を使っても動作するんですね。
mscorlibしか使えないのかと思っていました。
ご指摘ありがとうございます。

1 Like

なるほどですね。
私はまだほとんど覚えられていないので、代表的なものをまず覚えたいと思います。
ありがとうございます。

1 Like

.netの型が一覧表示されていると考えると、必ずしもUiPathと親和性のよくない型も含まれているということですよね。
これまでは全てがUiPath用の型として用意されているのかと誤解をしてました。
ありがとうございます。

そこまで深い部分まで考えれていませんでした。
両者の違いについて学習したいと思います。
ありがとうございます。

2 Likes

誤って自分の返信をsolutionにしてしまったようです。
失礼いたしました。
どの方のご指摘・ご回答も大変助かりました。
ありがとうございました。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.