Expression.ListInit Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine ListInitExpression.
Überlädt
ListInit(NewExpression, IEnumerable<ElementInit>) |
Erstellt eine ListInitExpression, die die angegebenen ElementInit-Objekte verwendet, um eine Auflistung zu initialisieren. |
ListInit(NewExpression, IEnumerable<Expression>) |
Erstellt eine ListInitExpression, die eine Methode mit dem Namen "Add" verwendet, um einer Auflistung Elemente hinzuzufügen. |
ListInit(NewExpression, ElementInit[]) |
Erstellt eine ListInitExpression, die die angegebenen ElementInit-Objekte verwendet, um eine Auflistung zu initialisieren. |
ListInit(NewExpression, Expression[]) |
Erstellt eine ListInitExpression, die eine Methode mit dem Namen "Add" verwendet, um einer Auflistung Elemente hinzuzufügen. |
ListInit(NewExpression, MethodInfo, IEnumerable<Expression>) |
Erstellt eine ListInitExpression, die eine angegebene Methode verwendet, um einer Auflistung Elemente hinzuzufügen. |
ListInit(NewExpression, MethodInfo, Expression[]) |
Erstellt eine ListInitExpression, die eine angegebene Methode verwendet, um einer Auflistung Elemente hinzuzufügen. |
ListInit(NewExpression, IEnumerable<ElementInit>)
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
Erstellt eine ListInitExpression, die die angegebenen ElementInit-Objekte verwendet, um eine Auflistung zu initialisieren.
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
Parameter
- newExpression
- NewExpression
Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.
- initializers
- IEnumerable<ElementInit>
Ein IEnumerable<T>, das ElementInit-Objekte enthält, mit denen die Initializers-Auflistung aufgefüllt werden soll.
Gibt zurück
Ein ListInitExpression, bei dem die NodeType-Eigenschaft gleich ListInit ist und die NewExpression-Eigenschaft sowie die Initializers-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
newExpression
oder initializers
ist null
.
- oder -
Mindestens ein Element von initializers
ist null
.
newExpression
.Type implementiert nicht IEnumerable.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der ListInit(NewExpression, ElementInit[]) -Methode eine ListInitExpression erstellen, die die Initialisierung eines neuen Wörterbuchs instance mit zwei Schlüssel-Wert-Paaren darstellt.
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")
Hinweise
Die Type -Eigenschaft von newExpression
muss einen Typ darstellen, der implementiert IEnumerable.
Die Type Eigenschaft des resultierenden ListInitExpression ist gleich newExpression
. Typ.
Gilt für:
ListInit(NewExpression, IEnumerable<Expression>)
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
Erstellt eine ListInitExpression, die eine Methode mit dem Namen "Add" verwendet, um einer Auflistung Elemente hinzuzufügen.
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
Parameter
- newExpression
- NewExpression
Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.
- initializers
- IEnumerable<Expression>
Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Initializers-Auflistung aufgefüllt werden soll.
Gibt zurück
Ein ListInitExpression, bei dem die NodeType-Eigenschaft gleich ListInit und die NewExpression-Eigenschaft auf den angegebenen Wert festgelegt ist.
Ausnahmen
newExpression
oder initializers
ist null
.
- oder -
Mindestens ein Element von initializers
ist null
.
newExpression
.Type implementiert nicht IEnumerable.
Es ist keine Instanzmethode namens „Add“ (ohne Beachtung der Groß-/Kleinschreibung) in newExpression
.Type oder dessen Basistyp deklariert.
- oder -
Die Add-Methode in newExpression
.Type oder dessen Basistyp nimmt nicht genau ein Argument entgegen.
- oder -
Der durch die Type-Eigenschaft dargestellte Typ des ersten Elements von initializers
lässt sich nicht dem Argumenttyp der Add-Methode in newExpression
.Type oder dessen Basistyp zuweisen.
- oder -
Mehrere argumentkompatible Methoden namens „Add“ (ohne Beachtung der Groß-/Kleinschreibung) sind in newExpression
.Type und/oder dessen Basistyp vorhanden.
Hinweise
Die Type -Eigenschaft von newExpression
muss einen Typ darstellen, der implementiert IEnumerable.
Um diese Überladung von zu verwenden, .ListInit(NewExpression, IEnumerable<Expression>)newExpression
Der Typ oder sein Basistyp muss eine einzelne Methode mit dem Namen "Add" deklarieren (ohne Beachtung der Groß-/Kleinschreibung), die genau ein Argument akzeptiert. Der Typ des Arguments muss aus dem Typ zugewiesen werden können, der durch die Type -Eigenschaft des ersten Elements von initializers
dargestellt wird.
Die Initializers -Eigenschaft des zurückgegebenen ListInitExpression enthält ein Element vom Typ ElementInit für jedes Element von initializers
. Die Arguments -Eigenschaft jedes Elements von Initializers ist eine Singleton-Auflistung, die das entsprechende Element von initializers
enthält. Die AddMethod -Eigenschaft jedes Elements von Initializers stellt die add-Methode dar, die für newExpression
ermittelt wurde. Geben Sie den Typ oder den zugehörigen Basistyp ein.
Die Type Eigenschaft des resultierenden ListInitExpression ist gleich newExpression
. Typ.
Gilt für:
ListInit(NewExpression, ElementInit[])
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
Erstellt eine ListInitExpression, die die angegebenen ElementInit-Objekte verwendet, um eine Auflistung zu initialisieren.
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
Parameter
- newExpression
- NewExpression
Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.
- initializers
- ElementInit[]
Ein Array von ElementInit-Objekten, mit denen die Initializers-Auflistung aufgefüllt wird.
Gibt zurück
Ein ListInitExpression, bei dem die NodeType-Eigenschaft gleich ListInit ist und die NewExpression-Eigenschaft sowie die Initializers-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
newExpression
oder initializers
ist null
.
- oder -
Mindestens ein Element von initializers
ist null
.
newExpression
.Type implementiert nicht IEnumerable.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der ListInit(NewExpression, ElementInit[]) -Methode eine ListInitExpression erstellen, die die Initialisierung eines neuen Wörterbuchs instance mit zwei Schlüssel-Wert-Paaren darstellt.
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")
Hinweise
Die Type -Eigenschaft von newExpression
muss einen Typ darstellen, der implementiert IEnumerable.
Die Type Eigenschaft des resultierenden ListInitExpression ist gleich newExpression
. Typ.
Gilt für:
ListInit(NewExpression, Expression[])
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
Erstellt eine ListInitExpression, die eine Methode mit dem Namen "Add" verwendet, um einer Auflistung Elemente hinzuzufügen.
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
Parameter
- newExpression
- NewExpression
Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.
- initializers
- Expression[]
Ein Array von Expression-Objekten, mit denen die Initializers-Auflistung aufgefüllt wird.
Gibt zurück
Ein ListInitExpression, bei dem die NodeType-Eigenschaft gleich ListInit und die NewExpression-Eigenschaft auf den angegebenen Wert festgelegt ist.
Ausnahmen
newExpression
oder initializers
ist null
.
- oder -
Mindestens ein Element von initializers
ist null
.
newExpression
.Type implementiert nicht IEnumerable.
Es ist keine Instanzmethode namens „Add“ (ohne Beachtung der Groß-/Kleinschreibung) in newExpression
.Type oder dessen Basistyp deklariert.
- oder -
Die Add-Methode in newExpression
.Type oder dessen Basistyp nimmt nicht genau ein Argument entgegen.
- oder -
Der durch die Type-Eigenschaft dargestellte Typ des ersten Elements von initializers
lässt sich nicht dem Argumenttyp der Add-Methode in newExpression
.Type oder dessen Basistyp zuweisen.
- oder -
Mehrere argumentkompatible Methoden namens „Add“ (ohne Beachtung der Groß-/Kleinschreibung) sind in newExpression
.Type und/oder dessen Basistyp vorhanden.
Hinweise
Die Type -Eigenschaft von newExpression
muss einen Typ darstellen, der implementiert IEnumerable.
Um diese Überladung von zu verwenden, .ListInit(NewExpression, Expression[])newExpression
Der Typ oder sein Basistyp muss eine einzelne Methode mit dem Namen "Add" deklarieren (ohne Beachtung der Groß-/Kleinschreibung), die genau ein Argument akzeptiert. Der Typ des Arguments muss aus dem Typ zugewiesen werden können, der durch die Type -Eigenschaft des ersten Elements von initializers
dargestellt wird.
Die Initializers -Eigenschaft des zurückgegebenen ListInitExpression enthält ein Element vom Typ ElementInit für jedes Element von initializers
. Die Arguments -Eigenschaft jedes Elements von Initializers ist eine Singleton-Auflistung, die das entsprechende Element von initializers
enthält. Die AddMethod -Eigenschaft jedes Elements von Initializers stellt die add-Methode dar, die für newExpression
ermittelt wurde. Geben Sie den Typ oder den zugehörigen Basistyp ein.
Die Type Eigenschaft des resultierenden ListInitExpression ist gleich newExpression
. Typ.
Gilt für:
ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
Erstellt eine ListInitExpression, die eine angegebene Methode verwendet, um einer Auflistung Elemente hinzuzufügen.
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
Parameter
- newExpression
- NewExpression
Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.
- addMethod
- MethodInfo
Eine MethodInfo, die eine Instanzmethode namens "Add" (Groß-/Kleinschreibung wird nicht berücksichtigt) darstellt, die einer Auflistung ein Element hinzufügt.
- initializers
- IEnumerable<Expression>
Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Initializers-Auflistung aufgefüllt werden soll.
Gibt zurück
Ein ListInitExpression, bei dem die NodeType-Eigenschaft gleich ListInit und die NewExpression-Eigenschaft auf den angegebenen Wert festgelegt ist.
Ausnahmen
newExpression
oder initializers
ist null
.
- oder -
Mindestens ein Element von initializers
ist null
.
newExpression
.Type implementiert nicht IEnumerable.
- oder -
addMethod
ist nicht null
und stellt keine Instanzmethode mit dem Namen "Add" (Groß-/Kleinschreibung wird nicht berücksichtigt) dar, die genau ein Argument akzeptiert.
- oder -
addMethod
ist nicht null
, und der durch die Type-Eigenschaft dargestellte Typ einer oder mehrerer Elemente von initializers
kann nicht dem Argumenttyp der durch addMethod
dargestellten Methode zugeordnet werden.
addMethod
ist null
, und in newExpression
.Type oder seinem Basistyp ist keine Instanzmethode mit dem Namen "Add" vorhanden, die genau ein typkompatibles Argument akzeptiert.
Hinweise
Die Type -Eigenschaft von newExpression
muss einen Typ darstellen, der implementiert IEnumerable.
Wenn addMethod
ist null
, newExpression
. Der Typ oder sein Basistyp muss eine einzelne Methode mit dem Namen "Add" deklarieren (ohne Beachtung der Groß-/Kleinschreibung), die genau ein Argument akzeptiert. Wenn addMethod
dies nicht null
der Fall ist, muss sie eine instance Methode namens "Add" darstellen (ohne Groß-/Kleinschreibung), die genau einen Parameter aufweist. Der durch die Type -Eigenschaft jedes Elements von initializers
dargestellte Typ muss dem Argumenttyp der add-Methode zugewiesen werden können.
Die Initializers -Eigenschaft des zurückgegebenen ListInitExpression enthält ein Element vom Typ ElementInit für jedes Element von initializers
. Die Arguments -Eigenschaft jedes Elements von Initializers ist eine Singleton-Auflistung, die das entsprechende Element von initializers
enthält. Die AddMethod Eigenschaft jedes Elements von Initializers ist gleich addMethod
.
Die Type -Eigenschaft des resultierenden ListInitExpression ist gleich newExpression
. Typ.
Gilt für:
ListInit(NewExpression, MethodInfo, Expression[])
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
- Quelle:
- ListInitExpression.cs
Erstellt eine ListInitExpression, die eine angegebene Methode verwendet, um einer Auflistung Elemente hinzuzufügen.
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
Parameter
- newExpression
- NewExpression
Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.
- addMethod
- MethodInfo
Eine MethodInfo, die eine Instanzmethode darstellt, die ein Argument akzeptiert und einer Auflistung ein Element hinzufügt.
- initializers
- Expression[]
Ein Array von Expression-Objekten, mit denen die Initializers-Auflistung aufgefüllt wird.
Gibt zurück
Ein ListInitExpression, bei dem die NodeType-Eigenschaft gleich ListInit und die NewExpression-Eigenschaft auf den angegebenen Wert festgelegt ist.
Ausnahmen
newExpression
oder initializers
ist null
.
- oder -
Mindestens ein Element von initializers
ist null
.
newExpression
.Type implementiert nicht IEnumerable.
- oder -
addMethod
ist nicht null
und stellt keine Instanzmethode mit dem Namen "Add" (Groß-/Kleinschreibung wird nicht berücksichtigt) dar, die genau ein Argument akzeptiert.
- oder -
addMethod
ist nicht null
, und der durch die Type-Eigenschaft dargestellte Typ einer oder mehrerer Elemente von initializers
kann nicht dem Argumenttyp der durch addMethod
dargestellten Methode zugeordnet werden.
addMethod
ist null
, und in newExpression
.Type oder seinem Basistyp ist keine Instanzmethode mit dem Namen "Add" vorhanden, die genau ein typkompatibles Argument akzeptiert.
Hinweise
Die Type -Eigenschaft von newExpression
muss einen Typ darstellen, der implementiert IEnumerable.
Wenn addMethod
ist null
, newExpression
. Der Typ oder sein Basistyp muss eine einzelne Methode mit dem Namen "Add" deklarieren (ohne Beachtung der Groß-/Kleinschreibung), die genau ein Argument akzeptiert. Wenn addMethod
nicht null
ist, muss sie eine instance Methode namens "Add" darstellen (ohne Beachtung der Groß-/Kleinschreibung), die genau einen Parameter aufweist. Der Typ, der durch die Type -Eigenschaft jedes Elements von initializers
dargestellt wird, muss dem Argumenttyp der add-Methode zugewiesen werden können.
Die Initializers -Eigenschaft des zurückgegebenen ListInitExpression enthält ein Element vom Typ ElementInit für jedes Element von initializers
. Die Arguments -Eigenschaft jedes Elements von Initializers ist eine Singletonauflistung, die das entsprechende Element von initializers
enthält. Die AddMethod -Eigenschaft jedes Elements von Initializers ist gleich addMethod
.
Die Type -Eigenschaft des resultierenden ListInitExpression ist gleich newExpression
. Typ.