ジェネリックC#オブジェクトがコレクションの一部であるかどうかを判断する方法はありますか?そして、コレクションを取り出す方法はありますか?サブオブジェクトから「コレクション」を検索
私は、オブジェクトが別のものの一部であることを認識していないことを知っています(親はどこにも保存されていません)が、一般的なコレクションで反射を使用する可能性があります。
ジェネリックC#オブジェクトがコレクションの一部であるかどうかを判断する方法はありますか?そして、コレクションを取り出す方法はありますか?サブオブジェクトから「コレクション」を検索
私は、オブジェクトが別のものの一部であることを認識していないことを知っています(親はどこにも保存されていません)が、一般的なコレクションで反射を使用する可能性があります。
元の質問に答えるには:いいえ、オブジェクトの親コレクションを見つけることはできないと思われます。反射はおそらく役に立ちません。
しかし、拡張メソッドを使用してICollection.Add()の動作を変更し、追加された各オブジェクトに共通のコンテナへの参照を格納することで、必要なものを実現できます。オブジェクトに追加のデータを置く
はここに記載されているように、達成可能であるように思わ: はHow can additional data be associated with existing objects using extension methods?
あなたが必要なものを達成するための他の解決策があるかもしれませんが、私の自己に私はそのようなものでいいと思います。
あなたは、それが一部であるかもしれないコレクションがわからないということですか?または、特定のコレクションを念頭に置いて、オブジェクトがその中に含まれているかどうかを調べるだけですか? – ADyson
プロパティが子に存在しない限り、コレクション内のアイテムから親(コレクション)を取得することはできません。ほとんどの場合、コレクションを列挙して、検索を使用してプロパティを持つ子を検索する必要があります。 – jdweng
@jdweng:新しい小道具を保管することもそのような結果を達成する最善の方法と思われます。 – sonik