获取C#中List中特定Type约束的对象

时间:2018-04-08 20:48:37

标签: c# class generics inheritance

如果我有一份B< A>列表中的对象。我怎样才能得到受D类约束的那些?

IList<B<A>> Bs = new ...

public class A
{

}

public class C : A
{
}

public class D : A
{
}

public sealed class B<T> where T : A
{
}

我想得到一个只包含B&lt; D>对象。

类似的东西:

var list = Bs.Where(o => o is constrained by D).ToList()

1 个答案:

答案 0 :(得分:4)

使用:

yourList.OfType<D>();

获取列表中D类型的所有对象。有关详情,请参阅out there