Freigeben über


Expression.ListInit Methode

Definition

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 initializersdargestellt 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 initializersenthält. Die AddMethod -Eigenschaft jedes Elements von Initializers stellt die add-Methode dar, die für newExpressionermittelt 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 initializersdargestellt 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 initializersenthält. Die AddMethod -Eigenschaft jedes Elements von Initializers stellt die add-Methode dar, die für newExpressionermittelt 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 nullder 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 initializersenthä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 nullist, 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 initializersenthält. Die AddMethod -Eigenschaft jedes Elements von Initializers ist gleich addMethod.

Die Type -Eigenschaft des resultierenden ListInitExpression ist gleich newExpression. Typ.

Gilt für: