将泛型类型的对象转换为子类型

西蒙·西姆城

我的代码中有以下情形:

class Document
{}

class Track : Document
{}

class ViewListClickHandler
{
    // I can't change that signature, it's provided by a library I use.
    protected override void click(object theList, int index)
    {
        // I here need to cast "theList" to IList<T> where T : Document
    }
}

我的问题现在是(如评论中所述):

我如何将其theList转换为类似的类型IList<T> where T : Document

这种情况下的困难是,我可以获取任何可以扩展Document到该列表中的类。对我来说,我得到的也是一样。我只想将其转换为包含一些文档的列表。

编辑:

对不起,忘了提。theList有时是一个对象,与兼容IList<Document>,有时IList<Track>或通常被键入为的某些其他子类型Document

我需要单线执行此操作。我有另一个示例,它不是IList,而是另一个通用类型的类,在该类中我无法循环。

新石器时代

您可以使用OfType

var documents = theList.OfType<Document>();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将泛型类型的对象转换为子类型

来自分类Dev

将泛型类型转换为子类

来自分类Dev

将泛型类型转换为子类型

来自分类Dev

将泛型类型转换为任何?

来自分类Dev

类型转换为泛型

来自分类Dev

转换泛型类型对象

来自分类Dev

如何使用C#泛型将类的对象转换为T类型的对象?

来自分类Dev

如何使用C#泛型将类的对象转换为T类型的对象?

来自分类Dev

Java泛型。类型不匹配:无法从对象转换为

来自分类Dev

将对象转换为方法泛型类型

来自分类Dev

Java泛型。类型不匹配:无法从对象转换为

来自分类Dev

泛型类型子类

来自分类Dev

无法将基本实例的对象转换为派生类型(泛型用法)

来自分类Dev

如何将泛型类型转换为非泛型类型

来自分类Dev

将泛型类转换为其他类型

来自分类Dev

scala将String转换为泛型类型

来自分类Dev

通过泛型将数据类型转换为xml?

来自分类Dev

从泛型类转换为类型

来自分类Dev

Delphi泛型:无法将类和构造函数约束的泛型类型转换为接口

来自分类Dev

将基本类型转换/转换为派生的泛型类型

来自分类Dev

隐式转换泛型类型对象

来自分类Dev

泛型类型的转换

来自分类Dev

转换泛型类型

来自分类Dev

反射:将反射类型转换为泛型,类型为字符串并对其进行迭代

来自分类Dev

c#泛型无法将源类型转换为目标类型

来自分类Dev

访问类型是泛型类的子类型?

来自分类Dev

返回与泛型定义的类型不同的类型的错误:“无法将类型List <A>隐式转换为List <tableType>”

来自分类Dev

如何将任何类型的泛型类型转换为另一种类型

来自分类Dev

TypeScript-将类型的属性转换为其子类型

Related 相关文章

热门标签

归档