【问题标题】:Cast IEnumerable(Of String) to my sub-classed List(Of String)将 IEnumerable(Of String) 转换为我的子类 List(Of String)
【发布时间】:2015-09-04 18:41:43
【问题描述】:

我有一个从列表继承的类:

Public Class TextLines : Inherits List(Of String)


End Class

现在,如何将IEnumerable(Of String) 类型的返回值转换为我的自定义类?

我正在尝试做的真实示例:

Dim lines As TextLines
lines = CType(File.ReadAllLines(Me.filepathB, Me.encodingB).ToList, TextLines)

它抛出一个无效的强制转换异常。

【问题讨论】:

    标签: .net vb.net generics types ienumerable


    【解决方案1】:

    你为什么不这样做呢?

    Dim lines As New TextLines()
    lines.AddRange(File.ReadAllLines(Me.filepathB, Me.encodingB));
    

    或者公开接受IEnumerable<T>的构造函数?

    【讨论】:

    • 谢谢,但我想通过理解为什么不能进行转换以正确的方式解决它如果可以使用 ToList 函数将 Ienumerable(of T) 转换为 List(of T),并且我的类继承自一个 List(Of T),然后我不明白为什么不能转换它,或者如何解决它。还是谢谢
    • @ElektroStudios 的相同论点是每个正方形都是矩形,但并非所有矩形都是正方形。你不能转换为子类。
    猜你喜欢
    • 2012-11-29
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多