2011-10-03 16 views
1

expandoオブジェクトの展開可能なコレクションを注文することは可能ですか?ExpandoオブジェクトのObservableCollectionを並べ替える

ObservableCollectionをソートする方法については、thisが見つかりました。しかし、私はラムダ式でプロパティの名前を知る必要があります。 expandoオブジェクトのプロパティが動的なので、私はこれを知らない。

答えて

0

最終的にExpandoObjectは、参照しているリンクのテクニックを使用するには、IComparable<T>またはIComparableを実装する必要があります。

ExpandoObjectのthis versionを参照している場合は、いずれのインターフェイスも実装していません。したがって、これらの2つのインタフェースのうちの1つを実装するのが簡単な答えです。

基本的に、ExpandoObjectの2つの異なるインスタンスを比較して、どちらを先に並べ替えるかを知る必要があることについて、ある程度の知識が必要です。

ExpandoObjectsが完全に動的である場合(動的に拡張される特定の共通プロパティがあるというより)、論理的に2つのインスタンスを比較してソートする方法はありますか?あなたの質問の周りに詳細を提供できる場合は、私はより具体的な答えを提供することができます。

+0

私のexpandoオブジェクトは完全に動的です。 DBから取得したデータを表現するために使用します。私はちょうどあなたが望むどの列に基づいて昇順または降順のオブジェクトを注文したいですか? DB内の1列は、展開オブジェクトの1つのプロパティです – Omar

+0

この場合、IComparableを実装できます。これらの値の(文字列)名に基づいて動的プロパティ値を取得できます。ユーザーが指定したhttp://stackoverflow.com/questions/4939508/get-value-of-c-dynamic-property-via-stringを参照してください。 –

関連する問題