Expression.ListInit Metoda

Definice

Vytvoří .ListInitExpression

Přetížení

ListInit(NewExpression, IEnumerable<ElementInit>)

Vytvoří objekt ListInitExpression , který k inicializaci kolekce používá zadané ElementInit objekty.

ListInit(NewExpression, IEnumerable<Expression>)

ListInitExpression Vytvoří metodu s názvem Add k přidání prvků do kolekce.

ListInit(NewExpression, ElementInit[])

Vytvoří objekt ListInitExpression , který k inicializaci kolekce používá zadané ElementInit objekty.

ListInit(NewExpression, Expression[])

ListInitExpression Vytvoří metodu s názvem Add k přidání prvků do kolekce.

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

Vytvoří metodu ListInitExpression , která používá zadanou metodu pro přidání prvků do kolekce.

ListInit(NewExpression, MethodInfo, Expression[])

Vytvoří metodu ListInitExpression , která používá zadanou metodu pro přidání prvků do kolekce.

ListInit(NewExpression, IEnumerable<ElementInit>)

Vytvoří objekt ListInitExpression , který k inicializaci kolekce používá zadané ElementInit objekty.

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

Parametry

newExpression
NewExpression

A NewExpression pro nastavení NewExpression vlastnosti rovno.

initializers
IEnumerable<ElementInit>

Objekt IEnumerable<T> obsahující ElementInit objekty, které se mají použít k naplnění Initializers kolekce.

Návraty

ListInitExpression

AListInitExpression, který má vlastnost rovna ListInit NodeType a NewExpression vlastnosti Initializers nastavené na zadané hodnoty.

Výjimky

newExpression nebo initializers je null.

-nebo- Jeden nebo více prvků initializers jsou null.

newExpression. Typ neimplementuje IEnumerable.

Příklady

Následující příklad ukazuje, jak použít metodu ListInit(NewExpression, ElementInit[]) k vytvoření ListInitExpression , který představuje inicializaci nové instance slovníku se dvěma páry klíč-hodnota.

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

Poznámky

Vlastnost Type newExpression musí představovat typ, který implementuje IEnumerable.

Vlastnost Type výsledného ListInitExpression výsledku je rovna newExpression. Typ.

Platí pro

ListInit(NewExpression, IEnumerable<Expression>)

ListInitExpression Vytvoří metodu s názvem Add k přidání prvků do kolekce.

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

Parametry

newExpression
NewExpression

A NewExpression pro nastavení NewExpression vlastnosti rovno.

initializers
IEnumerable<Expression>

Objekt IEnumerable<T> obsahující Expression objekty, které se mají použít k naplnění Initializers kolekce.

Návraty

ListInitExpression

AListInitExpression, který má vlastnost rovna ListInit NodeType a NewExpression vlastnost nastavena na zadanou hodnotu.

Výjimky

newExpression nebo initializers je null.

-nebo- Jeden nebo více prvků initializers jsou null.

newExpression. Typ neimplementuje IEnumerable.

Neexistuje žádná metoda instance s názvem "Add" (malá a malá písmena) deklarována v newExpression. Typ nebo základní typ.

-nebo- Metoda add on newExpression. Typ nebo základní typ nepřebírají přesně jeden argument.

-nebo- Typ reprezentovaný Type vlastností prvního prvku initializers není přiřaditelný k typu argumentu add metody on newExpression. Typ nebo základní typ.

-nebo- Existuje více než jedna metoda kompatibilní s argumentem s názvem "Add" (malá a malá písmena) existuje v newExpression. Zadejte a/nebo jeho základní typ.

Poznámky

Vlastnost Type newExpression musí představovat typ, který implementuje IEnumerable.

Chcete-li použít toto přetížení ListInit(NewExpression, IEnumerable<Expression>), . newExpression Typ nebo jeho základní typ musí deklarovat jednu metodu s názvem Add (nerozlišuje malá a velká písmena), která přebírá přesně jeden argument. Typ argumentu musí být přiřazen z typu reprezentovaný Type vlastností prvního prvku initializers.

Vlastnost Initializers vráceného ListInitExpression obsahuje jeden prvek typu ElementInit pro každý prvek initializers. Vlastnost Arguments každého prvku Initializers je singleton kolekce, která obsahuje odpovídající prvek initializers. Vlastnost AddMethod každého prvku Initializers představuje přidat metodu, která byla zjištěna na newExpression. Typ nebo základní typ.

Vlastnost Type výsledného ListInitExpression výsledku je rovna newExpression. Typ.

Platí pro

ListInit(NewExpression, ElementInit[])

Vytvoří objekt ListInitExpression , který k inicializaci kolekce používá zadané ElementInit objekty.

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

Parametry

newExpression
NewExpression

A NewExpression pro nastavení NewExpression vlastnosti rovno.

initializers
ElementInit[]

Pole ElementInit objektů, které se mají použít k naplnění Initializers kolekce.

Návraty

ListInitExpression

AListInitExpression, který má vlastnost rovna ListInit NodeType a NewExpression vlastnosti Initializers nastavené na zadané hodnoty.

Výjimky

newExpression nebo initializers je null.

-nebo- Jeden nebo více prvků initializers jsou null.

newExpression. Typ neimplementuje IEnumerable.

Příklady

Následující příklad ukazuje, jak použít metodu ListInit(NewExpression, ElementInit[]) k vytvoření ListInitExpression , který představuje inicializaci nové instance slovníku se dvěma páry klíč-hodnota.

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

Poznámky

Vlastnost Type newExpression musí představovat typ, který implementuje IEnumerable.

Vlastnost Type výsledného ListInitExpression výsledku je rovna newExpression. Typ.

Platí pro

ListInit(NewExpression, Expression[])

ListInitExpression Vytvoří metodu s názvem Add k přidání prvků do kolekce.

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

Parametry

newExpression
NewExpression

A NewExpression pro nastavení NewExpression vlastnosti rovno.

initializers
Expression[]

Pole Expression objektů, které se mají použít k naplnění Initializers kolekce.

Návraty

ListInitExpression

AListInitExpression, který má vlastnost rovna ListInit NodeType a NewExpression vlastnost nastavena na zadanou hodnotu.

Výjimky

newExpression nebo initializers je null.

-nebo- Jeden nebo více prvků initializers jsou null.

newExpression. Typ neimplementuje IEnumerable.

Neexistuje žádná metoda instance s názvem "Add" (malá a malá písmena) deklarována v newExpression. Typ nebo základní typ.

-nebo- Metoda add on newExpression. Typ nebo základní typ nepřebírají přesně jeden argument.

-nebo- Typ reprezentovaný Type vlastností prvního prvku initializers není přiřaditelný k typu argumentu add metody on newExpression. Typ nebo základní typ.

-nebo- Existuje více než jedna metoda kompatibilní s argumentem s názvem "Add" (malá a malá písmena) existuje v newExpression. Zadejte a/nebo jeho základní typ.

Poznámky

Vlastnost Type newExpression musí představovat typ, který implementuje IEnumerable.

Chcete-li použít toto přetížení ListInit(NewExpression, Expression[]), . newExpression Typ nebo jeho základní typ musí deklarovat jednu metodu s názvem Add (nerozlišuje malá a velká písmena), která přebírá přesně jeden argument. Typ argumentu musí být přiřazen z typu reprezentovaný Type vlastností prvního prvku initializers.

Vlastnost Initializers vráceného ListInitExpression obsahuje jeden prvek typu ElementInit pro každý prvek initializers. Vlastnost Arguments každého prvku Initializers je singleton kolekce, která obsahuje odpovídající prvek initializers. Vlastnost AddMethod každého prvku Initializers představuje přidat metodu, která byla zjištěna na newExpression. Typ nebo základní typ.

Vlastnost Type výsledného ListInitExpression výsledku je rovna newExpression. Typ.

Platí pro

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

Vytvoří metodu ListInitExpression , která používá zadanou metodu pro přidání prvků do kolekce.

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

Parametry

newExpression
NewExpression

A NewExpression pro nastavení NewExpression vlastnosti rovno.

addMethod
MethodInfo

A MethodInfo , který představuje metodu instance s názvem "Add" (nerozlišuje malá a velká písmena), která přidá prvek do kolekce.

initializers
IEnumerable<Expression>

Objekt IEnumerable<T> obsahující Expression objekty, které se mají použít k naplnění Initializers kolekce.

Návraty

ListInitExpression

AListInitExpression, který má vlastnost rovna ListInit NodeType a NewExpression vlastnost nastavena na zadanou hodnotu.

Výjimky

newExpression nebo initializers je null.

-nebo- Jeden nebo více prvků initializers jsou null.

newExpression. Typ neimplementuje IEnumerable.

-nebo- addMethodnull není a nepředstavuje metodu instance s názvem Add (nerozlišující malá a velká písmena), která přebírá přesně jeden argument.

-nebo- addMethod není null a typ reprezentovaný Type vlastností jednoho nebo více prvků initializers není možné přiřadit k typu argumentu metody, která addMethod představuje.

addMethod is null and no instance method named "Add" that takes one type-compatible argument exists on newExpression. Typ nebo základní typ.

Poznámky

Vlastnost Type newExpression musí představovat typ, který implementuje IEnumerable.

Pokud addMethod je , newExpression``null. Typ nebo jeho základní typ musí deklarovat jednu metodu s názvem Add (nerozlišuje malá a velká písmena), která přebírá přesně jeden argument. Pokud addMethod tomu tak není null, musí představovat metodu instance s názvem Add (nerozlišující malá a velká písmena), která má přesně jeden parametr. Typ reprezentovaný Type vlastností každého prvku initializers musí být přiřadit k typu argumentu add metody.

Vlastnost Initializers vráceného ListInitExpression obsahuje jeden prvek typu ElementInit pro každý prvek initializers. Vlastnost Arguments každého prvku Initializers je singleton kolekce, která obsahuje odpovídající prvek initializers. Vlastnost AddMethod každého prvku Initializers je rovna addMethod.

Vlastnost Type výsledného ListInitExpression výsledku je rovna newExpression. Typ.

Platí pro

ListInit(NewExpression, MethodInfo, Expression[])

Vytvoří metodu ListInitExpression , která používá zadanou metodu pro přidání prvků do kolekce.

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

Parametry

newExpression
NewExpression

A NewExpression pro nastavení NewExpression vlastnosti rovno.

addMethod
MethodInfo

A MethodInfo , který představuje metodu instance, která přebírá jeden argument, který přidává prvek do kolekce.

initializers
Expression[]

Pole Expression objektů, které se mají použít k naplnění Initializers kolekce.

Návraty

ListInitExpression

AListInitExpression, který má vlastnost rovna ListInit NodeType a NewExpression vlastnost nastavena na zadanou hodnotu.

Výjimky

newExpression nebo initializers je null.

-nebo- Jeden nebo více prvků initializers jsou null.

newExpression. Typ neimplementuje IEnumerable.

-nebo- addMethodnull není a nepředstavuje metodu instance s názvem Add (nerozlišující malá a velká písmena), která přebírá přesně jeden argument.

-nebo- addMethod není null a typ reprezentovaný Type vlastností jednoho nebo více prvků initializers není možné přiřadit k typu argumentu metody, která addMethod představuje.

addMethod is null and no instance method named "Add" that takes one type-compatible argument exists on newExpression. Typ nebo základní typ.

Poznámky

Vlastnost Type newExpression musí představovat typ, který implementuje IEnumerable.

Pokud addMethod je , newExpression``null. Typ nebo jeho základní typ musí deklarovat jednu metodu s názvem Add (nerozlišuje malá a velká písmena), která přebírá přesně jeden argument. Pokud addMethod tomu tak není null, musí představovat metodu instance s názvem Add (nerozlišující malá a velká písmena), která má přesně jeden parametr. Typ reprezentovaný Type vlastností každého prvku initializers musí být přiřadit k typu argumentu add metody.

Vlastnost Initializers vráceného ListInitExpression obsahuje jeden prvek typu ElementInit pro každý prvek initializers. Vlastnost Arguments každého prvku Initializers je singleton kolekce, která obsahuje odpovídající prvek initializers. Vlastnost AddMethod každého prvku Initializers je rovna addMethod.

Vlastnost Type výsledného ListInitExpression výsledku je rovna newExpression. Typ.

Platí pro