Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Expression.ListInit-Methode: (NewExpression, ElementInit[])

 

Erstellt eine ListInitExpression, die die angegebenen ElementInit-Objekte verwendet, um eine Auflistung zu initialisieren.

Namespace:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static ListInitExpression ListInit(
	NewExpression newExpression,
	params ElementInit[] initializers
)

Parameter

newExpression
Type: System.Linq.Expressions.NewExpression

Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.

initializers
Type: System.Linq.Expressions.ElementInit[]

Ein Array von ElementInit-Objekten, mit denen die Initializers-Auflistung aufgefüllt wird.

Rückgabewert

Type: System.Linq.Expressions.ListInitExpression

Ein ListInitExpression, bei dem die NodeType-Eigenschaft gleich ListInit ist und die NewExpression-Eigenschaft sowie die Initializers-Eigenschaft auf die angegebenen Werte festgelegt sind.

Exception Condition
ArgumentNullException

newExpression oder initializers ist null.

- oder -

Ein oder mehrere Elemente von initializers sind null.

ArgumentException

newExpression. Der Typ implementiert IEnumerable.

Die Type -Eigenschaft des newExpression muss einen Typ, der implementiert darstellen IEnumerable.

Die Type -Eigenschaft der resultierenden ListInitExpression gleich newExpression. Geben Sie ein.

Im folgenden Beispiel wird veranschaulicht, wie die ListInit(NewExpression, ElementInit[]) Methode zum Erstellen einer ListInitExpressiondie die Initialisierung einer neuen Wörterbuchinstanz 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")}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: