1. ホーム
  2. c#

コレクションからリスト<T>への最速変換

2023-12-01 10:51:57

質問

避けたいこと

ManagementClass m = new ManagementClass("Win32_LogicalDisk");

ManagementObjectCollection managementObjects = m.GetInstances();

List<ManagementObject> managementList = new List<ManagementObject>();

foreach(ManagementObject m in managementObjects){

    managementList.Add(m);

}

そのコレクションをListにして、次のような形にする方法はないでしょうか。

List<ManagementObject> managementList = new List<ManagementObjec>(collection_array);

どのように解決するのですか?

フレームワークのバージョンは?3.5であれば、おそらく使用できると思われます。

List<ManagementObject> managementList = managementObjects.Cast<ManagementObject>().ToList();

(簡易版を削除するために編集しました。確認したところ ManagementObjectCollection のみを実装しており、汎用的でない IEnumerable 形式)