タイプがわからないコレクションを取得するためにLinQ式を呼び出すためにいくつかの抽象メソッドを必要とするクラスを取得しました。
このようなもの :
abstract List<object> Find(IEnumerable<object> items, object objectToFind)
したがって、オーバーライドメソッドは、オブジェクトに対してLinQクエリを実行できるようにするために、オブジェクトのキャストを開始する必要があります。
そんな感じ :
List<StrongType> things = items.Cast<StrongType>().ToList();
var thingToFind = (StrongType) objectToFind;
// <- PERFORM LINQ HERE
return result.Cast<object>().ToList();
すべてが正常に機能していますが、抽象化されたクラスから別の子クラスを作成する必要がある場合、彼は大きな間違いを犯す可能性があります。
だから...コメントだけでなくコードを使ってテクニックを単純化するのに役立つアドバイスが必要なだけです。または、Visual Studioでオーバーライドされたクラスを事前入力するようにコードを設定できるかどうか(属性を使用して?)。
理解してもらいたいです(私の英語は少し貧弱です)
ありがとう ;)