我在突出显示的行(*)中遇到此代码的问题;得到标题中的错误。任何帮助都会受到赞赏,因为我无法得到解决方案。
Dim htmlarraylist As New List(Of iTextSharp.text.IElement)
htmlarraylist = *HTMLWorker.ParseToList(New StreamReader(tempFile), New StyleSheet())*
document.Open()
For Each element As iTextSharp.text.IElement In htmlarraylist
document.Add(element)
Next
document.Close()
答案 0 :(得分:2)
是的,所以听起来ParseToList
会返回非通用的ArrayList
。解决这个问题的最简单方法 - 假设.NET 3.5 - 可能是使用Cast
和ToList
:
Dim htmlarraylist As List(Of iTextSharp.text.IElement)
htmlarraylist = HTMLWorker.ParseToList(New StreamReader(tempFile), _
New StyleSheet()) _
.Cast(Of iTextSharp.text.IElement) _
.ToList
请注意我如何更改第一个语句,以便它不再创建List(Of T)
的实例,只是立即将其丢弃。
这假设您真的希望它为List(Of T)
。如果你不介意它只是一个ArrayList
,你可以改变声明:
Dim list As ArrayList = HTMLWorker.ParseToList(New StreamReader(tempFile), _
New StyleSheet())
毕竟,你只是在你展示的代码中迭代它。 (您可以同样更改声明以使用IEnumerable
。)
答案 1 :(得分:1)
将代码缩短为
document.Open()
For Each element As iTextSharp.text.IElement In HTMLWorker.ParseToList(New StreamReader(tempFile), New StyleSheet())
document.Add(element)
Next
document.Close()