Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Expression.ListInit (NewExpression, IEnumerable<ElementInit>)

 

Data di pubblicazione: ottobre 2016

Crea un oggetto ListInitExpression che usa gli oggetti ElementInit specificati per inizializzare una raccolta.

Spazio dei nomi:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static ListInitExpression ListInit(
	NewExpression newExpression,
	IEnumerable<ElementInit> initializers
)

Parametri

newExpression
Type: System.Linq.Expressions.NewExpression

Oggetto NewExpression su cui impostare la proprietà NewExpression.

initializers
Type: System.Collections.Generic.IEnumerable<ElementInit>

Oggetto IEnumerable<T> contenente gli oggetti ElementInit da usare per popolare la raccolta Initializers.

Valore restituito

Type: System.Linq.Expressions.ListInitExpression

Oggetto ListInitExpression la cui proprietà NodeType è uguale a ListInit e le cui proprietà NewExpression e Initializers sono impostate sui valori specificati.

Exception Condition
ArgumentNullException

newExpression o initializers è null.

-oppure-

Uno o più elementi di initializers sono null.

ArgumentException

newExpression. Tipo non implementa IEnumerable.

Il Type proprietà newExpression deve rappresentare un tipo che implementa IEnumerable.

Il Type proprietà dell'oggetto risultante ListInitExpression è uguale a newExpression. Tipo.

Nell'esempio seguente viene illustrato come utilizzare il ListInit(NewExpression, ElementInit[]) metodo per creare un ListInitExpression che rappresenta l'inizializzazione di una nuova istanza di dizionario con due coppie chiave-valore.

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")}

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: