Como: Criar um método para adicionar extensão usado por um inicializador de coleção (Visual Basic)

Quando você usa um inicializador de coleção para criar uma coleção, o compilador Visual Basic procura um Addométodo do tipo de coleção para os quais os parâmetros para o Addmétodo correspondem aos tipos dos valores do inicializador de coleção . Isso deAddmétodo é usado para preencher a coleção com os valores do inicializador de coleção .

Se nenhuma correspondência Addmétodo existe e você não pode modificar o código para a coleção, você pode adicionar ummétodo de extensãochamado Add que leva os parâmetros que são necessários o inicializador de coleção . Normalmente, isso é o que você precisa fazer quando você usa os inicializadores de coleção para coleções genéricas.

Exemplo

O exemplo a seguir mostra como adicionar ummétodo de extensãogenérico List<T> Digite de forma que um inicializador de coleção pode ser usado para adicionar objetos do tipo Employee. Ométodo de extensãopermite que você use a sintaxe do inicializador abreviado de coleção .

Public Class Employee
    Public Property Id() As Integer
    Public Property Name() As String
End Class
Imports System.Runtime.CompilerServices

Module Module1

    <Extension()>
    Sub Add(ByVal list As List(Of Employee), ByVal id As Integer,
                                             ByVal name As String)
        list.Add(New Employee With {.Id = id, .Name = name})
    End Sub

End Module
Sub Main()
    Dim employees = New List(Of Employee) From {{1, "Adams, Ellen"},
                                                {2, "Hamilton, James R."},
                                                {3, "Ihrig, Ryan"}}
End Sub

Consulte também

Tarefas

Como: Criar uma coleção usada por um inicializador de coleção (Visual Basic)

Conceitos

Visão geral sobre inicializadores de coleção (Visual Basic)