Compartilhar via


Expression.ListInit Método

Definição

Sobrecargas

Nome Description
ListInit(NewExpression, IEnumerable<ElementInit>)

Cria um ListInitExpression que usa objetos especificados ElementInit para inicializar uma coleção.

ListInit(NewExpression, IEnumerable<Expression>)

Cria um ListInitExpression método chamado "Add" para adicionar elementos a uma coleção.

ListInit(NewExpression, ElementInit[])

Cria um ListInitExpression que usa objetos especificados ElementInit para inicializar uma coleção.

ListInit(NewExpression, Expression[])

Cria um ListInitExpression método chamado "Add" para adicionar elementos a uma coleção.

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

Cria um ListInitExpression método que usa um método especificado para adicionar elementos a uma coleção.

ListInit(NewExpression, MethodInfo, Expression[])

Cria um ListInitExpression método que usa um método especificado para adicionar elementos a uma coleção.

ListInit(NewExpression, IEnumerable<ElementInit>)

Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs

Cria um ListInitExpression que usa objetos especificados ElementInit para inicializar uma coleção.

public:
 static System::Linq::Expressions::ListInitExpression ^ ListInit(System::Linq::Expressions::NewExpression ^ newExpression, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ElementInit ^> ^ initializers);
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ElementInit> initializers);
static member ListInit : System.Linq.Expressions.NewExpression * seq<System.Linq.Expressions.ElementInit> -> System.Linq.Expressions.ListInitExpression
Public Shared Function ListInit (newExpression As NewExpression, initializers As IEnumerable(Of ElementInit)) As ListInitExpression

Parâmetros

newExpression
NewExpression

A NewExpression para definir a NewExpression propriedade igual a.

initializers
IEnumerable<ElementInit>

Um IEnumerable<T> que contém ElementInit objetos a serem usados para preencher a Initializers coleção.

Retornos

Um ListInitExpression que tem a NodeType propriedade igual a ListInit e as NewExpression propriedades e Initializers definidas para os valores especificados.

Exceções

newExpression ou initializers é null.

- ou -

Um ou mais elementos são initializersnull.

newExpression. O tipo não implementa IEnumerable.

Exemplos

O exemplo a seguir demonstra como usar o ListInit(NewExpression, ElementInit[]) método para criar um ListInitExpression que representa a inicialização de uma nova instância de dicionário com dois pares chave-valor.

string tree1 = "maple";
string tree2 = "oak";

System.Reflection.MethodInfo addMethod = typeof(Dictionary<int, string>).GetMethod("Add");

// Create two ElementInit objects that represent the
// two key-value pairs to add to the Dictionary.
System.Linq.Expressions.ElementInit elementInit1 =
    System.Linq.Expressions.Expression.ElementInit(
        addMethod,
        System.Linq.Expressions.Expression.Constant(tree1.Length),
        System.Linq.Expressions.Expression.Constant(tree1));
System.Linq.Expressions.ElementInit elementInit2 =
    System.Linq.Expressions.Expression.ElementInit(
        addMethod,
        System.Linq.Expressions.Expression.Constant(tree2.Length),
        System.Linq.Expressions.Expression.Constant(tree2));

// Create a NewExpression that represents constructing
// a new instance of Dictionary<int, string>.
System.Linq.Expressions.NewExpression newDictionaryExpression =
    System.Linq.Expressions.Expression.New(typeof(Dictionary<int, string>));

// Create a ListInitExpression that represents initializing
// a new Dictionary<> instance with two key-value pairs.
System.Linq.Expressions.ListInitExpression listInitExpression =
    System.Linq.Expressions.Expression.ListInit(
        newDictionaryExpression,
        elementInit1,
        elementInit2);

Console.WriteLine(listInitExpression.ToString());

// This code produces the following output:
//
// new Dictionary`2() {Void Add(Int32, System.String)(5,"maple"),
// Void Add(Int32, System.String)(3,"oak")}
Dim tree1 As String = "maple"
Dim tree2 As String = "oak"

Dim addMethod As System.Reflection.MethodInfo = _
    Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add")

' Create two ElementInit objects that represent the
' two key-value pairs to add to the Dictionary.
Dim elementInit1 As System.Linq.Expressions.ElementInit = _
    System.Linq.Expressions.Expression.ElementInit( _
        addMethod, _
        System.Linq.Expressions.Expression.Constant(tree1.Length), _
        System.Linq.Expressions.Expression.Constant(tree1))
Dim elementInit2 As System.Linq.Expressions.ElementInit = _
    System.Linq.Expressions.Expression.ElementInit( _
        addMethod, _
        System.Linq.Expressions.Expression.Constant(tree2.Length), _
        System.Linq.Expressions.Expression.Constant(tree2))

' Create a NewExpression that represents constructing
' a new instance of Dictionary(Of Integer, String).
Dim newDictionaryExpression As System.Linq.Expressions.NewExpression = _
    System.Linq.Expressions.Expression.[New](Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]"))

' Create a ListInitExpression that represents initializing
' a new Dictionary(Of T) instance with two key-value pairs.
Dim listInitExpression As System.Linq.Expressions.ListInitExpression = _
    System.Linq.Expressions.Expression.ListInit( _
        newDictionaryExpression, _
        elementInit1, _
        elementInit2)

Console.WriteLine(listInitExpression.ToString())

' This code produces the following output:
'
' new Dictionary`2() {Void Add(Int32, System.String)(5,"maple"),
' Void Add(Int32, System.String)(3,"oak")

Comentários

A Type propriedade deve newExpression representar um tipo que implementa IEnumerable.

A Type propriedade do resultado ListInitExpression é igual a newExpression. Tipo.

Aplica-se a

ListInit(NewExpression, IEnumerable<Expression>)

Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs

Cria um ListInitExpression método chamado "Add" para adicionar elementos a uma coleção.

public:
 static System::Linq::Expressions::ListInitExpression ^ ListInit(System::Linq::Expressions::NewExpression ^ newExpression, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ initializers);
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
static member ListInit : System.Linq.Expressions.NewExpression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ListInitExpression
Public Shared Function ListInit (newExpression As NewExpression, initializers As IEnumerable(Of Expression)) As ListInitExpression

Parâmetros

newExpression
NewExpression

A NewExpression para definir a NewExpression propriedade igual a.

initializers
IEnumerable<Expression>

Um IEnumerable<T> que contém Expression objetos a serem usados para preencher a Initializers coleção.

Retornos

Um ListInitExpression que tem a NodeType propriedade igual a ListInit e a NewExpression propriedade definida como o valor especificado.

Atributos

Exceções

newExpression ou initializers é null.

- ou -

Um ou mais elementos são initializersnull.

newExpression. O tipo não implementa IEnumerable.

Não há nenhum método de instância chamado "Add" (não diferencia maiúsculas de minúsculas) declarado em newExpression. Digite ou seu tipo base.

- ou -

O método add em newExpression. O tipo ou seu tipo base não usa exatamente um argumento.

- ou -

O tipo representado pela Type propriedade do primeiro elemento initializers não é atribuível ao tipo de argumento do método add em newExpression. Digite ou seu tipo base.

- ou -

Existe mais de um método compatível com argumento chamado "Add" (não diferencia maiúsculas de minúsculas newExpression). Digite e/ou seu tipo base.

Comentários

A Type propriedade deve newExpression representar um tipo que implementa IEnumerable.

Para usar essa sobrecarga de ListInit(NewExpression, IEnumerable<Expression>), newExpression. O tipo ou seu tipo base deve declarar um único método chamado "Add" (não diferencia maiúsculas de minúsculas) que usa exatamente um argumento. O tipo do argumento deve ser atribuível do tipo representado pela Type propriedade do primeiro elemento de initializers.

A Initializers propriedade do retornado ListInitExpression contém um elemento do tipo ElementInit para cada elemento de initializers. A Arguments propriedade de cada elemento Initializers é uma coleção singleton que contém o elemento correspondente de initializers. A AddMethod propriedade de cada elemento Initializers representa o método add que foi descoberto em newExpression. Digite ou seu tipo base.

A Type propriedade do resultado ListInitExpression é igual a newExpression. Tipo.

Aplica-se a

ListInit(NewExpression, ElementInit[])

Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs

Cria um ListInitExpression que usa objetos especificados ElementInit para inicializar uma coleção.

public:
 static System::Linq::Expressions::ListInitExpression ^ ListInit(System::Linq::Expressions::NewExpression ^ newExpression, ... cli::array <System::Linq::Expressions::ElementInit ^> ^ initializers);
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.ElementInit[] initializers);
static member ListInit : System.Linq.Expressions.NewExpression * System.Linq.Expressions.ElementInit[] -> System.Linq.Expressions.ListInitExpression
Public Shared Function ListInit (newExpression As NewExpression, ParamArray initializers As ElementInit()) As ListInitExpression

Parâmetros

newExpression
NewExpression

A NewExpression para definir a NewExpression propriedade igual a.

initializers
ElementInit[]

Uma matriz de ElementInit objetos a serem usados para preencher a Initializers coleção.

Retornos

Um ListInitExpression que tem a NodeType propriedade igual a ListInit e as NewExpression propriedades e Initializers definidas para os valores especificados.

Exceções

newExpression ou initializers é null.

- ou -

Um ou mais elementos são initializersnull.

newExpression. O tipo não implementa IEnumerable.

Exemplos

O exemplo a seguir demonstra como usar o ListInit(NewExpression, ElementInit[]) método para criar um ListInitExpression que representa a inicialização de uma nova instância de dicionário com dois pares chave-valor.

string tree1 = "maple";
string tree2 = "oak";

System.Reflection.MethodInfo addMethod = typeof(Dictionary<int, string>).GetMethod("Add");

// Create two ElementInit objects that represent the
// two key-value pairs to add to the Dictionary.
System.Linq.Expressions.ElementInit elementInit1 =
    System.Linq.Expressions.Expression.ElementInit(
        addMethod,
        System.Linq.Expressions.Expression.Constant(tree1.Length),
        System.Linq.Expressions.Expression.Constant(tree1));
System.Linq.Expressions.ElementInit elementInit2 =
    System.Linq.Expressions.Expression.ElementInit(
        addMethod,
        System.Linq.Expressions.Expression.Constant(tree2.Length),
        System.Linq.Expressions.Expression.Constant(tree2));

// Create a NewExpression that represents constructing
// a new instance of Dictionary<int, string>.
System.Linq.Expressions.NewExpression newDictionaryExpression =
    System.Linq.Expressions.Expression.New(typeof(Dictionary<int, string>));

// Create a ListInitExpression that represents initializing
// a new Dictionary<> instance with two key-value pairs.
System.Linq.Expressions.ListInitExpression listInitExpression =
    System.Linq.Expressions.Expression.ListInit(
        newDictionaryExpression,
        elementInit1,
        elementInit2);

Console.WriteLine(listInitExpression.ToString());

// This code produces the following output:
//
// new Dictionary`2() {Void Add(Int32, System.String)(5,"maple"),
// Void Add(Int32, System.String)(3,"oak")}
Dim tree1 As String = "maple"
Dim tree2 As String = "oak"

Dim addMethod As System.Reflection.MethodInfo = _
    Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add")

' Create two ElementInit objects that represent the
' two key-value pairs to add to the Dictionary.
Dim elementInit1 As System.Linq.Expressions.ElementInit = _
    System.Linq.Expressions.Expression.ElementInit( _
        addMethod, _
        System.Linq.Expressions.Expression.Constant(tree1.Length), _
        System.Linq.Expressions.Expression.Constant(tree1))
Dim elementInit2 As System.Linq.Expressions.ElementInit = _
    System.Linq.Expressions.Expression.ElementInit( _
        addMethod, _
        System.Linq.Expressions.Expression.Constant(tree2.Length), _
        System.Linq.Expressions.Expression.Constant(tree2))

' Create a NewExpression that represents constructing
' a new instance of Dictionary(Of Integer, String).
Dim newDictionaryExpression As System.Linq.Expressions.NewExpression = _
    System.Linq.Expressions.Expression.[New](Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]"))

' Create a ListInitExpression that represents initializing
' a new Dictionary(Of T) instance with two key-value pairs.
Dim listInitExpression As System.Linq.Expressions.ListInitExpression = _
    System.Linq.Expressions.Expression.ListInit( _
        newDictionaryExpression, _
        elementInit1, _
        elementInit2)

Console.WriteLine(listInitExpression.ToString())

' This code produces the following output:
'
' new Dictionary`2() {Void Add(Int32, System.String)(5,"maple"),
' Void Add(Int32, System.String)(3,"oak")

Comentários

A Type propriedade deve newExpression representar um tipo que implementa IEnumerable.

A Type propriedade do resultado ListInitExpression é igual a newExpression. Tipo.

Aplica-se a

ListInit(NewExpression, Expression[])

Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs

Cria um ListInitExpression método chamado "Add" para adicionar elementos a uma coleção.

public:
 static System::Linq::Expressions::ListInitExpression ^ ListInit(System::Linq::Expressions::NewExpression ^ newExpression, ... cli::array <System::Linq::Expressions::Expression ^> ^ initializers);
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.Expression[] initializers);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.Expression[] initializers);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.Expression[] initializers);
static member ListInit : System.Linq.Expressions.NewExpression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ListInitExpression
Public Shared Function ListInit (newExpression As NewExpression, ParamArray initializers As Expression()) As ListInitExpression

Parâmetros

newExpression
NewExpression

A NewExpression para definir a NewExpression propriedade igual a.

initializers
Expression[]

Uma matriz de Expression objetos a serem usados para preencher a Initializers coleção.

Retornos

Um ListInitExpression que tem a NodeType propriedade igual a ListInit e a NewExpression propriedade definida como o valor especificado.

Atributos

Exceções

newExpression ou initializers é null.

- ou -

Um ou mais elementos são initializersnull.

newExpression. O tipo não implementa IEnumerable.

Não há nenhum método de instância chamado "Add" (não diferencia maiúsculas de minúsculas) declarado em newExpression. Digite ou seu tipo base.

- ou -

O método add em newExpression. O tipo ou seu tipo base não usa exatamente um argumento.

- ou -

O tipo representado pela Type propriedade do primeiro elemento initializers não é atribuível ao tipo de argumento do método add em newExpression. Digite ou seu tipo base.

- ou -

Existe mais de um método compatível com argumento chamado "Add" (não diferencia maiúsculas de minúsculas newExpression). Digite e/ou seu tipo base.

Comentários

A Type propriedade deve newExpression representar um tipo que implementa IEnumerable.

Para usar essa sobrecarga de ListInit(NewExpression, Expression[]), newExpression. O tipo ou seu tipo base deve declarar um único método chamado "Add" (não diferencia maiúsculas de minúsculas) que usa exatamente um argumento. O tipo do argumento deve ser atribuível do tipo representado pela Type propriedade do primeiro elemento de initializers.

A Initializers propriedade do retornado ListInitExpression contém um elemento do tipo ElementInit para cada elemento de initializers. A Arguments propriedade de cada elemento Initializers é uma coleção singleton que contém o elemento correspondente de initializers. A AddMethod propriedade de cada elemento Initializers representa o método add que foi descoberto em newExpression. Digite ou seu tipo base.

A Type propriedade do resultado ListInitExpression é igual a newExpression. Tipo.

Aplica-se a

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs

Cria um ListInitExpression método que usa um método especificado para adicionar elementos a uma coleção.

public:
 static System::Linq::Expressions::ListInitExpression ^ ListInit(System::Linq::Expressions::NewExpression ^ newExpression, System::Reflection::MethodInfo ^ addMethod, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ initializers);
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo addMethod, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo? addMethod, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo? addMethod, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo? addMethod, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
static member ListInit : System.Linq.Expressions.NewExpression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ListInitExpression
Public Shared Function ListInit (newExpression As NewExpression, addMethod As MethodInfo, initializers As IEnumerable(Of Expression)) As ListInitExpression

Parâmetros

newExpression
NewExpression

A NewExpression para definir a NewExpression propriedade igual a.

addMethod
MethodInfo

Um MethodInfo que representa um método de instância chamado "Add" (não diferencia maiúsculas de minúsculas), que adiciona um elemento a uma coleção.

initializers
IEnumerable<Expression>

Um IEnumerable<T> que contém Expression objetos a serem usados para preencher a Initializers coleção.

Retornos

Um ListInitExpression que tem a NodeType propriedade igual a ListInit e a NewExpression propriedade definida como o valor especificado.

Atributos

Exceções

newExpression ou initializers é null.

- ou -

Um ou mais elementos são initializersnull.

newExpression. O tipo não implementa IEnumerable.

- ou -

addMethod não null é e não representa um método de instância chamado "Add" (diferencia maiúsculas de minúsculas) que usa exatamente um argumento.

- ou -

addMethod não null é e o tipo representado pela Type propriedade de um ou mais elementos não initializers é atribuível ao tipo de argumento do método que addMethod representa.

addMethod é null e nenhum método de instância chamado "Add" que usa um argumento compatível com tipo existe. newExpression Digite ou seu tipo base.

Comentários

A Type propriedade deve newExpression representar um tipo que implementa IEnumerable.

Se addMethod for null, newExpression. O tipo ou seu tipo base deve declarar um único método chamado "Add" (não diferencia maiúsculas de minúsculas) que usa exatamente um argumento. Se addMethod não nullestiver, ele deve representar um método de instância chamado "Add" (não diferencia maiúsculas de minúsculas) que tenha exatamente um parâmetro. O tipo representado pela Type propriedade de cada elemento initializers deve ser atribuível ao tipo de argumento do método add.

A Initializers propriedade do retornado ListInitExpression contém um elemento do tipo ElementInit para cada elemento de initializers. A Arguments propriedade de cada elemento Initializers é uma coleção singleton que contém o elemento correspondente de initializers. A AddMethod propriedade de cada elemento Initializers é igual a addMethod.

A Type propriedade do resultado ListInitExpression é igual a newExpression. Tipo.

Aplica-se a

ListInit(NewExpression, MethodInfo, Expression[])

Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs
Origem:
ListInitExpression.cs

Cria um ListInitExpression método que usa um método especificado para adicionar elementos a uma coleção.

public:
 static System::Linq::Expressions::ListInitExpression ^ ListInit(System::Linq::Expressions::NewExpression ^ newExpression, System::Reflection::MethodInfo ^ addMethod, ... cli::array <System::Linq::Expressions::Expression ^> ^ initializers);
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo addMethod, params System.Linq.Expressions.Expression[] initializers);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo? addMethod, params System.Linq.Expressions.Expression[] initializers);
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo? addMethod, params System.Linq.Expressions.Expression[] initializers);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Reflection.MethodInfo? addMethod, params System.Linq.Expressions.Expression[] initializers);
static member ListInit : System.Linq.Expressions.NewExpression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ListInitExpression
Public Shared Function ListInit (newExpression As NewExpression, addMethod As MethodInfo, ParamArray initializers As Expression()) As ListInitExpression

Parâmetros

newExpression
NewExpression

A NewExpression para definir a NewExpression propriedade igual a.

addMethod
MethodInfo

Um MethodInfo que representa um método de instância que usa um argumento que adiciona um elemento a uma coleção.

initializers
Expression[]

Uma matriz de Expression objetos a serem usados para preencher a Initializers coleção.

Retornos

Um ListInitExpression que tem a NodeType propriedade igual a ListInit e a NewExpression propriedade definida como o valor especificado.

Atributos

Exceções

newExpression ou initializers é null.

- ou -

Um ou mais elementos são initializersnull.

newExpression. O tipo não implementa IEnumerable.

- ou -

addMethod não null é e não representa um método de instância chamado "Add" (diferencia maiúsculas de minúsculas) que usa exatamente um argumento.

- ou -

addMethod não null é e o tipo representado pela Type propriedade de um ou mais elementos não initializers é atribuível ao tipo de argumento do método que addMethod representa.

addMethod é null e nenhum método de instância chamado "Add" que usa um argumento compatível com tipo existe. newExpression Digite ou seu tipo base.

Comentários

A Type propriedade deve newExpression representar um tipo que implementa IEnumerable.

Se addMethod for null, newExpression. O tipo ou seu tipo base deve declarar um único método chamado "Add" (não diferencia maiúsculas de minúsculas) que usa exatamente um argumento. Se addMethod não nullestiver, ele deve representar um método de instância chamado "Add" (não diferencia maiúsculas de minúsculas) que tenha exatamente um parâmetro. O tipo representado pela Type propriedade de cada elemento initializers deve ser atribuível ao tipo de argumento do método add.

A Initializers propriedade do retornado ListInitExpression contém um elemento do tipo ElementInit para cada elemento de initializers. A Arguments propriedade de cada elemento Initializers é uma coleção singleton que contém o elemento correspondente de initializers. A AddMethod propriedade de cada elemento Initializers é igual a addMethod.

A Type propriedade do resultado ListInitExpression é igual a newExpression. Tipo.

Aplica-se a