【问题标题】:Get objects that are constrained by a specific Type in a List in C#获取受 C# 列表中特定类型约束的对象
【发布时间】:2018-04-08 20:48:37
【问题描述】:

如果我在列表中有一个 B 对象的列表。怎样才能得到那些受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 对象的列表。

类似:

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

【问题讨论】:

  • 使用OfType方法。
  • 你是什么意思受Generic D约束D 不是通用的。 B 是通用的。
  • @CodingYoshi 已修复。
  • 您的问题中的IList&lt;B&lt;T&gt;&gt; 没有多大意义。你不能声明一个开放的泛型类型,你的意思是像IList&lt;B&lt;A&gt;&gt;这样的吗?

标签: c# class generics inheritance


【解决方案1】:

用途:

yourList.OfType<D>();

获取列表中D 类型的所有对象。请参阅MSDN 了解更多信息。

【讨论】:

  • 我想要一个只包含 B 对象的列表。
  • 然后使用 OfType>() (:
  • 如何它不起作用Vahid?它不编译吗?抛出异常?当您期望它不是空的时候?
猜你喜欢
  • 2022-08-15
  • 1970-01-01
  • 2013-01-20
  • 1970-01-01
  • 2020-07-21
  • 2020-04-30
  • 1970-01-01
  • 2017-09-23
  • 2021-05-26
相关资源
最近更新 更多