web-dev-qa-db-ja.com

オブザーバブルコレクションを通常のコレクションに戻す

関数には、オブジェクト型のパラメーターがあります。プログラムの他の部分から送られてきたデータ型のタイプを確認するためにデバッグしました。ベースはObservableCollectionでした。それをリストに変換するにはどうすればよいですか?

44
Shawn Mclean

ObservableCollection内のオブジェクトのタイプに応じて、この例ではintであると想定します。

IEnumerable<int> obsCollection = (IEnumerable<int>)GetCollection();
var list = new List<int>(obsCollection);
55

名前空間_using System.Linq;_を追加するだけです

そしてObservableCollectionオブジェクトでToList()メソッドを使用します

64
Jaider

ObservableCollection<T>IEnumerable<T>を実装している場合、List<T>のコンストラクターに渡すことができます。

List<T> myList = new List<T>(myObservableCollection);

ここで、Tはコレクション内のアイテムのタイプです。

19
GraemeF

ObservableCollectionは_IList<T>_を実装するため、ToList()を使用できるはずです。

http://msdn.Microsoft.com/en-us/library/bb342261.aspx

4
Robert Harvey

ItemsプロパティはIListを返します。 http://msdn.Microsoft.com/en-us/library/ms132435.aspxを参照

2
LJM

ここでの問題は、ObservableCollectionをListに変換したり、そのように使用しようとすると、ObservableCollectionがオンザフライで変更される可能性があるため、ObservableCollectionが完了するまでウォッチドッグタイマーを使用する必要があるかもしれないと思う

0
Ion Todirel