Expression.ListInit Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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
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
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
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
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-
addMethod
null
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
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-
addMethod
null
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.