DTOコレクションからオブジェクトをロードするメソッドを含むコレクションクラスを持ついくつかのジェネリッククラスをいじっています。Func
public void LoadCollection<C, D>(IEnumerable<D> dtos, Func<D, C> fetch)
where D : class
{
foreach (var dto in dtos)
this.Add(fetch(dto)); // Can't assign a C to a C??
}
(C はクラス定義に制約されます)
他のすべては正常に動作していますが、C を C に変換できないというメッセージが表示this.Add
されます。それは C ( = true) を返し、それitem is C
をリストに追加しようとしますが、リストの制約がまさにその C にあるにもかかわらず、無効な引数をスローします。
使用しようとしても、割り当てられないというthis.AddRange
理由で機能しません(mscorlib の差分バージョンに注意してください)。IEnumerable<T> v4.0.0.0
IEnumerable<T> v2.0.5.0
古い mscorlib を参照しているものを見つける簡単な方法はありますか? 他の誰かがこの問題を抱えていましたか?