Share via


Expression.ListInit Metoda

Definice

Vytvoří .ListInitExpression

Přetížení

ListInit(NewExpression, IEnumerable<ElementInit>)

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

ListInit(NewExpression, IEnumerable<Expression>)

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

ListInit(NewExpression, ElementInit[])

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

ListInit(NewExpression, Expression[])

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

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

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

ListInit(NewExpression, MethodInfo, Expression[])

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

ListInit(NewExpression, IEnumerable<ElementInit>)

Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs

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

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 , aby se NewExpression vlastnost nastavil na hodnotu .

initializers
IEnumerable<ElementInit>

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

Návraty

A ListInitExpression , který má NodeType vlastnost rovnou ListInit a NewExpression vlastnosti a Initializers nastavené na zadané hodnoty.

Výjimky

newExpression nebo initializers je null.

-nebo-

Jeden nebo více prvků je initializersnull.

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 TypenewExpression musí představovat typ, který implementuje IEnumerable.

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

Platí pro

ListInit(NewExpression, IEnumerable<Expression>)

Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs

Vytvoří metodu ListInitExpression s názvem "Add" pro 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 , aby se NewExpression vlastnost nastavil na hodnotu .

initializers
IEnumerable<Expression>

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

Návraty

A ListInitExpression , který má NodeType vlastnost rovnou ListInitNewExpression a vlastnost nastavenou na zadanou hodnotu.

Výjimky

newExpression nebo initializers je null.

-nebo-

Jeden nebo více prvků je initializersnull.

newExpression. Typ neimplementuje IEnumerable.

V nástroji není deklarována newExpressionžádná metoda instance s názvem Add (bez rozlišování malých a velkých písmen). Typ nebo jeho základní typ.

-nebo-

Metoda add pro newExpression. Typ nebo jeho základní typ nepřebírají právě jeden argument.

-nebo-

Typ reprezentovaný Type vlastností prvního prvku objektu initializers není možné přiřadit k typu argumentu metody add na newExpression. Typ nebo jeho základní typ.

-nebo-

V systému existuje více než jedna metoda kompatibilní s argumenty s názvem "Add" (bez rozlišování malých a velkých písmen) . newExpression Typ a/nebo jeho základní typ.

Poznámky

Vlastnost TypenewExpression 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" (bez rozlišování malých a velkých písmen), která přijímá právě jeden argument. Typ argumentu musí být přiřaditelný z typu reprezentované Type vlastností prvního prvku .initializers

Vrácená Initializers vlastnost ListInitExpression obsahuje jeden prvek typu ElementInit pro každý prvek objektu initializers. Vlastnost Arguments každého prvku Initializers je jednoúčelová kolekce, která obsahuje odpovídající prvek objektu initializers. Vlastnost AddMethod každého prvku Initializers představuje metodu add, která byla zjištěna v newExpression. Typ nebo jeho základní typ.

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

Platí pro

ListInit(NewExpression, ElementInit[])

Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs

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

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 , aby se NewExpression vlastnost nastavil na hodnotu .

initializers
ElementInit[]

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

Návraty

A ListInitExpression , který má NodeType vlastnost rovnou ListInit a NewExpression vlastnosti a Initializers nastavené na zadané hodnoty.

Výjimky

newExpression nebo initializers je null.

-nebo-

Jeden nebo více prvků je initializersnull.

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 TypenewExpression musí představovat typ, který implementuje IEnumerable.

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

Platí pro

ListInit(NewExpression, Expression[])

Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs

Vytvoří metodu ListInitExpression s názvem "Add" pro 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 , aby se NewExpression vlastnost nastavil na hodnotu .

initializers
Expression[]

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

Návraty

A ListInitExpression , který má NodeType vlastnost rovnou ListInitNewExpression a vlastnost nastavenou na zadanou hodnotu.

Výjimky

newExpression nebo initializers je null.

-nebo-

Jeden nebo více prvků je initializersnull.

newExpression. Typ neimplementuje IEnumerable.

V nástroji není deklarována newExpressionžádná metoda instance s názvem Add (bez rozlišování malých a velkých písmen). Typ nebo jeho základní typ.

-nebo-

Metoda add pro newExpression. Typ nebo jeho základní typ nepřebírají právě jeden argument.

-nebo-

Typ reprezentovaný Type vlastností prvního prvku objektu initializers není možné přiřadit k typu argumentu metody add na newExpression. Typ nebo jeho základní typ.

-nebo-

V systému existuje více než jedna metoda kompatibilní s argumenty s názvem "Add" (bez rozlišování malých a velkých písmen) . newExpression Typ a/nebo jeho základní typ.

Poznámky

Vlastnost TypenewExpression 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" (bez rozlišování malých a velkých písmen), která přijímá právě jeden argument. Typ argumentu musí být přiřaditelný z typu reprezentované Type vlastností prvního prvku .initializers

Vrácená Initializers vlastnost ListInitExpression obsahuje jeden prvek typu ElementInit pro každý prvek objektu initializers. Vlastnost Arguments každého prvku Initializers je jednoúčelová kolekce, která obsahuje odpovídající prvek objektu initializers. Vlastnost AddMethod každého prvku Initializers představuje metodu add, která byla zjištěna v newExpression. Typ nebo jeho základní typ.

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

Platí pro

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs

Vytvoří objekt 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 , aby se NewExpression vlastnost nastavil na hodnotu .

addMethod
MethodInfo

A MethodInfo , který představuje metodu instance s názvem "Add" (bez rozlišování malých a velkých písmen), která přidá prvek do kolekce.

initializers
IEnumerable<Expression>

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

Návraty

A ListInitExpression , který má NodeType vlastnost rovnou ListInitNewExpression a vlastnost nastavenou na zadanou hodnotu.

Výjimky

newExpression nebo initializers je null.

-nebo-

Jeden nebo více prvků je initializersnull.

newExpression. Typ neimplementuje IEnumerable.

-nebo-

addMethod není null a nepředstavuje metodu instance s názvem "Add" (bez rozlišování malých a velkých písmen), která přijímá právě jeden argument.

-nebo-

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

addMethod je null a neexistuje žádná metoda instance s názvem "Add", která přijímá jeden typově kompatibilní argument. newExpression Typ nebo jeho základní typ.

Poznámky

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

Pokud addMethod je null, newExpression. Typ nebo jeho základní typ musí deklarovat jednu metodu s názvem "Add" (bez rozlišování malých a velkých písmen), která přijímá právě jeden argument. Pokud addMethod není null, musí představovat metodu instance s názvem Add (bez rozlišování malých a velkých písmen), která má přesně jeden parametr. Typ reprezentovaný Type vlastností každého prvku initializers musí být přiřaditelný k typu argumentu metody add.

Vrácená Initializers vlastnost ListInitExpression obsahuje jeden prvek typu ElementInit pro každý prvek objektu initializers. Vlastnost Arguments každého prvku Initializers je jednoúčelová kolekce, která obsahuje odpovídající prvek objektu initializers. Vlastnost AddMethod každého prvku Initializers je rovna addMethod.

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

Platí pro

ListInit(NewExpression, MethodInfo, Expression[])

Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs
Zdroj:
ListInitExpression.cs

Vytvoří objekt 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 , aby se NewExpression vlastnost nastavil na hodnotu .

addMethod
MethodInfo

A MethodInfo , který představuje metodu instance, která přijímá 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

A ListInitExpression , který má NodeType vlastnost rovnou ListInitNewExpression a vlastnost nastavenou na zadanou hodnotu.

Výjimky

newExpression nebo initializers je null.

-nebo-

Jeden nebo více prvků je initializersnull.

newExpression. Typ neimplementuje IEnumerable.

-nebo-

addMethod není null a nepředstavuje metodu instance s názvem "Add" (bez rozlišování malých a velkých písmen), která přijímá právě jeden argument.

-nebo-

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

addMethod je null a neexistuje žádná metoda instance s názvem "Add", která přijímá jeden typově kompatibilní argument. newExpression Typ nebo jeho základní typ.

Poznámky

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

Pokud addMethod je null, newExpression. Typ nebo jeho základní typ musí deklarovat jednu metodu s názvem "Add" (bez rozlišování malých a velkých písmen), která přijímá právě jeden argument. Pokud addMethod není null, musí představovat metodu instance s názvem Add (bez rozlišování malých a velkých písmen), která má přesně jeden parametr. Typ reprezentovaný Type vlastností každého prvku initializers musí být přiřaditelný k typu argumentu metody add.

Vrácená Initializers vlastnost ListInitExpression obsahuje jeden prvek typu ElementInit pro každý prvek objektu initializers. Vlastnost Arguments každého prvku Initializers je jednoúčelová kolekce, která obsahuje odpovídající prvek objektu initializers. Vlastnost AddMethod každého prvku Initializers je rovna addMethod.

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

Platí pro