2013-04-14 2 views
1

Вот мой код ..Convert List (Of HtmlElement) для HtmlElementCollection класса

Private Function GetElement(ByVal hec As ICollection, ByVal strAttName As String, ByVal strAttVal As String) As List(Of HtmlElement) 
    Dim hecFilter As New List(Of HtmlElement) 
    Dim str As String 
    For Each El As HtmlElement In hec 
     str = El.GetAttribute(strAttName) 
     If (Not IsNothing(str) AndAlso str.Trim() = strAttVal) Then 
      hecFilter.Add(El) 
     End If 
    Next 
    Return hecFilter 
End Function 

Было бы вернуть мне List(Of HtmlElement)

Теперь я хочу, чтобы преобразовать его в HtmlElementCollectionclass.

Попытка сделать это

Private Function GetElement(ByVal hec As HtmlElementCollection, ByVal strAttName As String, ByVal strAttVal As String) As HtmlElementCollection 
    Dim hecFilter As New List(Of HtmlElement) 
    Dim str As String 
    For Each El As HtmlElement In hec 
     str = El.GetAttribute(strAttName) 
     If (Not IsNothing(str) AndAlso str.Trim() = strAttVal) Then 
      hecFilter.Add(El) 
     End If 
    Next 
    Return TryCast(hecFilter, HtmlElementCollection) 
End Function 

Он показывает ошибку:

Value of type 'System.Collections.Generic.List(Of System.Windows.Forms.HtmlElement)' cannot be converted to 'System.Windows.Forms.HtmlElementCollection'.

+0

Try ** hecFilter.Cast () ** –

+0

Пробовал 'TryCast (hecFilter, HtmlElementCollection)' также – vikas

ответ

0

HtmlElementCollectionimplementsICollection что doesn't haveAdd(), IEnumerabledoesn't have это либо ..

Я предполагаю, что конструктор принимающую Элементы: internal. Таким образом, угроза этой коллекции доступна только для чтения.

+0

любое решение или предложение – vikas

+1

@vikas: Для чего вам нужно возвращать коллекцию, а не список? – abatishchev

+0

Мне нужна функция с возвращаемым типом 'HtmlElementCollection' где' HtmlElementCollection' как параметр. Я хочу, чтобы фильтр 'HtmlElementCollection' на самом деле – vikas