Expression.ListInit Método

Definição

Sobrecargas

Name Description
ListInit(NewExpression, IEnumerable<ElementInit>)

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

ListInit(NewExpression, IEnumerable<Expression>)

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

ListInit(NewExpression, ElementInit[])

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

ListInit(NewExpression, Expression[])

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

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

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

ListInit(NewExpression, MethodInfo, Expression[])

Cria um ListInitExpression que utiliza 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 utiliza 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 para usar para preencher a Initializers coleção.

Devoluções

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

Exceções

newExpression ou initializers é null.

-ou-

Um ou mais elementos de initializers são null.

newExpression. O tipo não implementa IEnumerable.

Exemplos

O exemplo seguinte 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")

Observações

A Type propriedade de newExpression deve representar um tipo que implemente 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 que usa um 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 para usar para preencher a Initializers coleção.

Devoluções

A ListInitExpression que tem a NodeType propriedade igual a ListInit e a NewExpression propriedade definida ao valor especificado.

Atributos

Exceções

newExpression ou initializers é null.

-ou-

Um ou mais elementos de initializers são null.

newExpression. O tipo não implementa IEnumerable.

Não existe nenhum método de instância chamado "Add" (indistinto a maiúsculas) declarado em newExpression. Tipo ou o seu tipo base.

-ou-

O método de adição em newExpression. O tipo ou o seu tipo base não requer exatamente um argumento.

-ou-

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

-ou-

Existem mais do que um método compatível com argumentos chamado "Add" (indistinto a maiúsculas e minúsculas) em newExpression. Tipo e/ou o seu tipo base.

Observações

A Type propriedade de newExpression deve representar um tipo que implemente IEnumerable.

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

A Initializers propriedade do devolvido ListInitExpression contém um elemento do tipo ElementInit para cada elemento de initializers. A Arguments propriedade de cada elemento de Initializers é uma coleção singleton que contém o elemento correspondente de initializers. A AddMethod propriedade de cada elemento de Initializers representa o método de adição que foi descoberto em newExpression. Tipo ou o 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 utiliza 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[]

Um conjunto de ElementInit objetos para preencher a Initializers coleção.

Devoluções

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

Exceções

newExpression ou initializers é null.

-ou-

Um ou mais elementos de initializers são null.

newExpression. O tipo não implementa IEnumerable.

Exemplos

O exemplo seguinte 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")

Observações

A Type propriedade de newExpression deve representar um tipo que implemente 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 que usa um 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[]

Um conjunto de Expression objetos para preencher a Initializers coleção.

Devoluções

A ListInitExpression que tem a NodeType propriedade igual a ListInit e a NewExpression propriedade definida ao valor especificado.

Atributos

Exceções

newExpression ou initializers é null.

-ou-

Um ou mais elementos de initializers são null.

newExpression. O tipo não implementa IEnumerable.

Não existe nenhum método de instância chamado "Add" (indistinto a maiúsculas) declarado em newExpression. Tipo ou o seu tipo base.

-ou-

O método de adição em newExpression. O tipo ou o seu tipo base não requer exatamente um argumento.

-ou-

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

-ou-

Existem mais do que um método compatível com argumentos chamado "Add" (indistinto a maiúsculas e minúsculas) em newExpression. Tipo e/ou o seu tipo base.

Observações

A Type propriedade de newExpression deve representar um tipo que implemente IEnumerable.

Para usar esta sobrecarga de ListInit(NewExpression, Expression[]), newExpression. O tipo ou o seu tipo base deve declarar um único método chamado "Add" (indistinto a maiúsculas) que aceita exatamente um argumento. O tipo do argumento deve ser atribuído a partir do tipo representado pela Type propriedade do primeiro elemento de initializers.

A Initializers propriedade do devolvido ListInitExpression contém um elemento do tipo ElementInit para cada elemento de initializers. A Arguments propriedade de cada elemento de Initializers é uma coleção singleton que contém o elemento correspondente de initializers. A AddMethod propriedade de cada elemento de Initializers representa o método de adição que foi descoberto em newExpression. Tipo ou o 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 que utiliza 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

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

initializers
IEnumerable<Expression>

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

Devoluções

A ListInitExpression que tem a NodeType propriedade igual a ListInit e a NewExpression propriedade definida ao valor especificado.

Atributos

Exceções

newExpression ou initializers é null.

-ou-

Um ou mais elementos de initializers são null.

newExpression. O tipo não implementa IEnumerable.

-ou-

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

-ou-

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

addMethod é null e não existe nenhum método de instância chamado "Add" que tome um argumento compatível com tipo em newExpression. Tipo ou o seu tipo base.

Observações

A Type propriedade de newExpression deve representar um tipo que implemente IEnumerable.

Se addMethod for null, newExpression. O tipo ou o seu tipo base deve declarar um único método chamado "Add" (indistinto a maiúsculas) que aceita exatamente um argumento. Se addMethod não nullfor , deve representar um método de instância chamado "Add" (indistinto a maiúsculas) que tem exatamente um parâmetro. O tipo representado pela Type propriedade de cada elemento de initializers deve ser atribuível ao tipo de argumento do método de adição.

A Initializers propriedade do devolvido ListInitExpression contém um elemento do tipo ElementInit para cada elemento de initializers. A Arguments propriedade de cada elemento de Initializers é uma coleção singleton que contém o elemento correspondente de initializers. A AddMethod propriedade de cada elemento de 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 que utiliza 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

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

initializers
Expression[]

Um conjunto de Expression objetos para preencher a Initializers coleção.

Devoluções

A ListInitExpression que tem a NodeType propriedade igual a ListInit e a NewExpression propriedade definida ao valor especificado.

Atributos

Exceções

newExpression ou initializers é null.

-ou-

Um ou mais elementos de initializers são null.

newExpression. O tipo não implementa IEnumerable.

-ou-

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

-ou-

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

addMethod é null e não existe nenhum método de instância chamado "Add" que tome um argumento compatível com tipo em newExpression. Tipo ou o seu tipo base.

Observações

A Type propriedade de newExpression deve representar um tipo que implemente IEnumerable.

Se addMethod for null, newExpression. O tipo ou o seu tipo base deve declarar um único método chamado "Add" (indistinto a maiúsculas) que aceita exatamente um argumento. Se addMethod não nullfor , deve representar um método de instância chamado "Add" (indistinto a maiúsculas) que tem exatamente um parâmetro. O tipo representado pela Type propriedade de cada elemento de initializers deve ser atribuível ao tipo de argumento do método de adição.

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

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

Aplica-se a