Expression.ListInit Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée un ListInitExpression.
Surcharges
ListInit(NewExpression, IEnumerable<ElementInit>) |
Crée un ListInitExpression qui utilise des objets ElementInit spécifiés pour initialiser une collection. |
ListInit(NewExpression, IEnumerable<Expression>) |
Crée un ListInitExpression qui utilise une méthode nommée « Add » pour ajouter des éléments à une collection. |
ListInit(NewExpression, ElementInit[]) |
Crée un ListInitExpression qui utilise des objets ElementInit spécifiés pour initialiser une collection. |
ListInit(NewExpression, Expression[]) |
Crée un ListInitExpression qui utilise une méthode nommée « Add » pour ajouter des éléments à une collection. |
ListInit(NewExpression, MethodInfo, IEnumerable<Expression>) |
Crée un ListInitExpression qui utilise une méthode spécifiée pour ajouter des éléments à une collection. |
ListInit(NewExpression, MethodInfo, Expression[]) |
Crée un ListInitExpression qui utilise une méthode spécifiée pour ajouter des éléments à une collection. |
ListInit(NewExpression, IEnumerable<ElementInit>)
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
Crée un ListInitExpression qui utilise des objets ElementInit spécifiés pour initialiser une collection.
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
Paramètres
- newExpression
- NewExpression
NewExpression auquel la propriété NewExpression doit être égale.
- initializers
- IEnumerable<ElementInit>
IEnumerable<T> qui contient des objets ElementInit à utiliser pour remplir la collection Initializers.
Retours
ListInitExpression dont la propriété NodeType est égale à ListInit et dont les propriétés NewExpression et Initializers ont les valeurs spécifiées.
Exceptions
newExpression
ou initializers
est null
.
- ou -
Un ou plusieurs éléments de initializers
sont null
.
newExpression
.Type n’implémente pas IEnumerable.
Exemples
L’exemple suivant montre comment utiliser la ListInit(NewExpression, ElementInit[]) méthode pour créer un ListInitExpression qui représente l’initialisation d’un nouveau dictionnaire instance avec deux paires clé-valeur.
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")
Remarques
La Type propriété de newExpression
doit représenter un type qui implémente IEnumerable.
La Type propriété du résultat ListInitExpression est égale à newExpression
. Type.
S’applique à
ListInit(NewExpression, IEnumerable<Expression>)
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
Crée un ListInitExpression qui utilise une méthode nommée « Add » pour ajouter des éléments à une collection.
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);
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
Paramètres
- newExpression
- NewExpression
NewExpression auquel la propriété NewExpression doit être égale.
- initializers
- IEnumerable<Expression>
IEnumerable<T> qui contient des objets Expression à utiliser pour remplir la collection Initializers.
Retours
ListInitExpression dont la propriété NodeType est égale à ListInit et dont la propriété NewExpression a la valeur spécifiée.
Exceptions
newExpression
ou initializers
est null
.
- ou -
Un ou plusieurs éléments de initializers
sont null
.
newExpression
.Type n’implémente pas IEnumerable.
Il n’existe aucune méthode d’instance nommée « Add » (non-respect de la casse) déclaré dans newExpression
.Type ou son type de base.
- ou -
La méthode add sur newExpression
.Type ou son type de base ne prend pas exactement un argument.
- ou -
Le type représenté par la propriété Type du premier élément de initializers
n’est pas affectable au type d’argument de la méthode add sur newExpression
.Type ou son type de base.
- ou -
Plusieurs méthodes compatibles avec des arguments nommées « Add » (non-respect de la casse) existent sur newExpression
.Type et/ou son type de base.
Remarques
La Type propriété de newExpression
doit représenter un type qui implémente IEnumerable.
Pour utiliser cette surcharge de ListInit(NewExpression, IEnumerable<Expression>), newExpression
. Le type ou son type de base doit déclarer une méthode unique nommée « Add » (qui ne respecte pas la casse) qui prend exactement un seul argument. Le type de l’argument doit être assignable à partir du type représenté par la Type propriété du premier élément de initializers
.
La Initializers propriété du retourné ListInitExpression contient un élément de type ElementInit pour chaque élément de initializers
. La Arguments propriété de chaque élément de Initializers est une collection singleton qui contient l’élément correspondant de initializers
. La AddMethod propriété de chaque élément de Initializers représente la méthode add qui a été découverte sur newExpression
. Type ou son type de base.
La Type propriété du résultat ListInitExpression est égale à newExpression
. Type.
S’applique à
ListInit(NewExpression, ElementInit[])
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
Crée un ListInitExpression qui utilise des objets ElementInit spécifiés pour initialiser une collection.
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
Paramètres
- newExpression
- NewExpression
NewExpression auquel la propriété NewExpression doit être égale.
- initializers
- ElementInit[]
Tableau d'objets ElementInit à utiliser pour remplir la collection Initializers.
Retours
ListInitExpression dont la propriété NodeType est égale à ListInit et dont les propriétés NewExpression et Initializers ont les valeurs spécifiées.
Exceptions
newExpression
ou initializers
est null
.
- ou -
Un ou plusieurs éléments de initializers
sont null
.
newExpression
.Type n’implémente pas IEnumerable.
Exemples
L’exemple suivant montre comment utiliser la ListInit(NewExpression, ElementInit[]) méthode pour créer un ListInitExpression qui représente l’initialisation d’un nouveau dictionnaire instance avec deux paires clé-valeur.
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")
Remarques
La Type propriété de newExpression
doit représenter un type qui implémente IEnumerable.
La Type propriété du résultat ListInitExpression est égale à newExpression
. Type.
S’applique à
ListInit(NewExpression, Expression[])
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
Crée un ListInitExpression qui utilise une méthode nommée « Add » pour ajouter des éléments à une collection.
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);
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
Paramètres
- newExpression
- NewExpression
NewExpression auquel la propriété NewExpression doit être égale.
- initializers
- Expression[]
Tableau d'objets Expression à utiliser pour remplir la collection Initializers.
Retours
ListInitExpression dont la propriété NodeType est égale à ListInit et dont la propriété NewExpression a la valeur spécifiée.
Exceptions
newExpression
ou initializers
est null
.
- ou -
Un ou plusieurs éléments de initializers
sont null
.
newExpression
.Type n’implémente pas IEnumerable.
Il n’existe aucune méthode d’instance nommée « Add » (non-respect de la casse) déclaré dans newExpression
.Type ou son type de base.
- ou -
La méthode add sur newExpression
.Type ou son type de base ne prend pas exactement un argument.
- ou -
Le type représenté par la propriété Type du premier élément de initializers
n’est pas affectable au type d’argument de la méthode add sur newExpression
.Type ou son type de base.
- ou -
Plusieurs méthodes compatibles avec des arguments nommées « Add » (non-respect de la casse) existent sur newExpression
.Type et/ou son type de base.
Remarques
La Type propriété de newExpression
doit représenter un type qui implémente IEnumerable.
Pour utiliser cette surcharge de ListInit(NewExpression, Expression[]), newExpression
. Le type ou son type de base doit déclarer une méthode unique nommée « Add » (qui ne respecte pas la casse) qui prend exactement un seul argument. Le type de l’argument doit être assignable à partir du type représenté par la Type propriété du premier élément de initializers
.
La Initializers propriété du retourné ListInitExpression contient un élément de type ElementInit pour chaque élément de initializers
. La Arguments propriété de chaque élément de Initializers est une collection singleton qui contient l’élément correspondant de initializers
. La AddMethod propriété de chaque élément de Initializers représente la méthode add qui a été découverte sur newExpression
. Type ou son type de base.
La Type propriété du résultat ListInitExpression est égale à newExpression
. Type.
S’applique à
ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
Crée un ListInitExpression qui utilise une méthode spécifiée pour ajouter des éléments à une collection.
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);
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
Public Shared Function ListInit (newExpression As NewExpression, addMethod As MethodInfo, initializers As IEnumerable(Of Expression)) As ListInitExpression
Paramètres
- newExpression
- NewExpression
NewExpression auquel la propriété NewExpression doit être égale.
- addMethod
- MethodInfo
MethodInfo qui représente une méthode d'instance nommée "Add" (non respect de la casse), qui ajoute un élément à une collection.
- initializers
- IEnumerable<Expression>
IEnumerable<T> qui contient des objets Expression à utiliser pour remplir la collection Initializers.
Retours
ListInitExpression dont la propriété NodeType est égale à ListInit et dont la propriété NewExpression a la valeur spécifiée.
Exceptions
newExpression
ou initializers
est null
.
- ou -
Un ou plusieurs éléments de initializers
sont null
.
newExpression
.Type n’implémente pas IEnumerable.
- ou -
addMethod
n'est pas null
et ne représente pas une méthode d'instance nommée "Add" (non respect de la casse) qui prend exactement un argument.
- ou -
addMethod
n'est pas null
et le type représenté par la propriété Type d'un ou plusieurs éléments de initializers
ne peut pas être assigné au type d'argument de la méthode que addMethod
représente.
addMethod
est null
et il n'existe aucune méthode d'instance nommée "Add" prenant un argument compatible avec le type sur newExpression
.Type ou son type de base.
Remarques
La Type propriété de newExpression
doit représenter un type qui implémente IEnumerable.
Si addMethod
a la valeur null
, newExpression
. Le type ou son type de base doit déclarer une méthode unique nommée « Add » (qui ne respecte pas la casse) qui prend exactement un seul argument. Si addMethod
n’est pas , elle doit représenter une méthode instance nommée « Add » (qui ne respecte pas null
la casse) qui a exactement un paramètre. Le type représenté par la Type propriété de chaque élément de initializers
doit être assignable au type d’argument de la méthode add.
La Initializers propriété du retourné ListInitExpression contient un élément de type ElementInit pour chaque élément de initializers
. La Arguments propriété de chaque élément de Initializers est une collection singleton qui contient l’élément correspondant de initializers
. La AddMethod propriété de chaque élément de Initializers est égale à addMethod
.
La Type propriété du résultat ListInitExpression est égale à newExpression
. Type.
S’applique à
ListInit(NewExpression, MethodInfo, Expression[])
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
- Source:
- ListInitExpression.cs
Crée un ListInitExpression qui utilise une méthode spécifiée pour ajouter des éléments à une collection.
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);
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
Public Shared Function ListInit (newExpression As NewExpression, addMethod As MethodInfo, ParamArray initializers As Expression()) As ListInitExpression
Paramètres
- newExpression
- NewExpression
NewExpression auquel la propriété NewExpression doit être égale.
- addMethod
- MethodInfo
MethodInfo qui représente une méthode d'instance prenant un argument, qui ajoute un élément à une collection.
- initializers
- Expression[]
Tableau d'objets Expression à utiliser pour remplir la collection Initializers.
Retours
ListInitExpression dont la propriété NodeType est égale à ListInit et dont la propriété NewExpression a la valeur spécifiée.
Exceptions
newExpression
ou initializers
est null
.
- ou -
Un ou plusieurs éléments de initializers
sont null
.
newExpression
.Type n’implémente pas IEnumerable.
- ou -
addMethod
n'est pas null
et ne représente pas une méthode d'instance nommée "Add" (non respect de la casse) qui prend exactement un argument.
- ou -
addMethod
n'est pas null
et le type représenté par la propriété Type d'un ou plusieurs éléments de initializers
ne peut pas être assigné au type d'argument de la méthode que addMethod
représente.
addMethod
est null
et il n'existe aucune méthode d'instance nommée "Add" prenant un argument compatible avec le type sur newExpression
.Type ou son type de base.
Remarques
La Type propriété de newExpression
doit représenter un type qui implémente IEnumerable.
Si addMethod
a la valeur null
, newExpression
. Le type ou son type de base doit déclarer une méthode unique nommée « Add » (qui ne respecte pas la casse) qui prend exactement un seul argument. Si addMethod
n’est pas , elle doit représenter une méthode instance nommée « Add » (qui ne respecte pas null
la casse) qui a exactement un paramètre. Le type représenté par la Type propriété de chaque élément de initializers
doit être assignable au type d’argument de la méthode add.
La Initializers propriété du retourné ListInitExpression contient un élément de type ElementInit pour chaque élément de initializers
. La Arguments propriété de chaque élément de Initializers est une collection singleton qui contient l’élément correspondant de initializers
. La AddMethod propriété de chaque élément de Initializers est égale à addMethod
.
La Type propriété du résultat ListInitExpression est égale à newExpression
. Type.