Expression.ListInit Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en ListInitExpression.
Överlagringar
| Name | Description |
|---|---|
| ListInit(NewExpression, IEnumerable<ElementInit>) |
Skapar en ListInitExpression som använder angivna ElementInit objekt för att initiera en samling. |
| ListInit(NewExpression, IEnumerable<Expression>) |
Skapar en ListInitExpression som använder en metod med namnet "Lägg till" för att lägga till element i en samling. |
| ListInit(NewExpression, ElementInit[]) |
Skapar en ListInitExpression som använder angivna ElementInit objekt för att initiera en samling. |
| ListInit(NewExpression, Expression[]) |
Skapar en ListInitExpression som använder en metod med namnet "Lägg till" för att lägga till element i en samling. |
| ListInit(NewExpression, MethodInfo, IEnumerable<Expression>) |
Skapar en ListInitExpression som använder en angiven metod för att lägga till element i en samling. |
| ListInit(NewExpression, MethodInfo, Expression[]) |
Skapar en ListInitExpression som använder en angiven metod för att lägga till element i en samling. |
ListInit(NewExpression, IEnumerable<ElementInit>)
Skapar en ListInitExpression som använder angivna ElementInit objekt för att initiera en samling.
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
Parametrar
- newExpression
- NewExpression
A NewExpression för att ange egenskapen NewExpression lika med.
- initializers
- IEnumerable<ElementInit>
En IEnumerable<T> som innehåller ElementInit objekt som ska användas för att fylla samlingen Initializers .
Returer
En ListInitExpression som har egenskapen NodeType lika med ListInit och NewExpression egenskaperna och Initializers inställda på de angivna värdena.
Undantag
newExpression eller initializers är null.
-eller-
Ett eller flera element i initializers är null.
newExpression. Typen implementerar IEnumerableinte .
Exempel
I följande exempel visas hur du använder ListInit(NewExpression, ElementInit[]) metoden för att skapa en ListInitExpression som representerar initieringen av en ny ordlisteinstans med två nyckel/värde-par.
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")
Kommentarer
Egenskapen TypenewExpression för måste representera en typ som implementerar IEnumerable.
Egenskapen Type för resultatet ListInitExpression är lika med newExpression. Typ.
Gäller för
ListInit(NewExpression, IEnumerable<Expression>)
Skapar en ListInitExpression som använder en metod med namnet "Lägg till" för att lägga till element i en samling.
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
Parametrar
- newExpression
- NewExpression
A NewExpression för att ange egenskapen NewExpression lika med.
- initializers
- IEnumerable<Expression>
En IEnumerable<T> som innehåller Expression objekt som ska användas för att fylla samlingen Initializers .
Returer
En ListInitExpression som har egenskapen NodeType lika med ListInit och egenskapen NewExpression inställd på det angivna värdet.
Undantag
newExpression eller initializers är null.
-eller-
Ett eller flera element i initializers är null.
newExpression. Typen implementerar IEnumerableinte .
Det finns ingen instansmetod med namnet "Lägg till" (skiftlägesokänslig) som deklareras i newExpression. Typ eller bastyp.
-eller-
Lägg till -metoden på newExpression. Typ eller dess bastyp tar inte exakt ett argument.
-eller-
Den typ som representeras av Type egenskapen för det första elementet initializers i kan inte tilldelas till argumenttypen för add-metoden på newExpression. Typ eller bastyp.
-eller-
Mer än en argumentkompatibel metod med namnet "Lägg till" (skiftlägesokänslig) finns på newExpression. Skriv och/eller dess bastyp.
Kommentarer
Egenskapen TypenewExpression för måste representera en typ som implementerar IEnumerable.
För att använda den här överlagringen av ListInit(NewExpression, IEnumerable<Expression>), newExpression. Typen eller dess bastyp måste deklarera en enskild metod med namnet "Lägg till" (skiftlägesokänslig) som tar exakt ett argument. Argumentets typ måste kunna tilldelas från den typ som representeras av Type egenskapen för det första elementet i initializers.
Egenskapen Initializers för den returnerade ListInitExpression innehåller ett element av typen ElementInit för varje element i initializers. Egenskapen Arguments för varje element Initializers i är en singleton-samling som innehåller motsvarande element i initializers. Egenskapen AddMethod för varje element Initializers i representerar den lägg till-metod som identifierades på newExpression. Typ eller bastyp.
Egenskapen Type för resultatet ListInitExpression är lika med newExpression. Typ.
Gäller för
ListInit(NewExpression, ElementInit[])
Skapar en ListInitExpression som använder angivna ElementInit objekt för att initiera en samling.
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
Parametrar
- newExpression
- NewExpression
A NewExpression för att ange egenskapen NewExpression lika med.
- initializers
- ElementInit[]
En matris med ElementInit objekt som ska användas för att fylla samlingen Initializers .
Returer
En ListInitExpression som har egenskapen NodeType lika med ListInit och NewExpression egenskaperna och Initializers inställda på de angivna värdena.
Undantag
newExpression eller initializers är null.
-eller-
Ett eller flera element i initializers är null.
newExpression. Typen implementerar IEnumerableinte .
Exempel
I följande exempel visas hur du använder ListInit(NewExpression, ElementInit[]) metoden för att skapa en ListInitExpression som representerar initieringen av en ny ordlisteinstans med två nyckel/värde-par.
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")
Kommentarer
Egenskapen TypenewExpression för måste representera en typ som implementerar IEnumerable.
Egenskapen Type för resultatet ListInitExpression är lika med newExpression. Typ.
Gäller för
ListInit(NewExpression, Expression[])
Skapar en ListInitExpression som använder en metod med namnet "Lägg till" för att lägga till element i en samling.
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
Parametrar
- newExpression
- NewExpression
A NewExpression för att ange egenskapen NewExpression lika med.
- initializers
- Expression[]
En matris med Expression objekt som ska användas för att fylla samlingen Initializers .
Returer
En ListInitExpression som har egenskapen NodeType lika med ListInit och egenskapen NewExpression inställd på det angivna värdet.
Undantag
newExpression eller initializers är null.
-eller-
Ett eller flera element i initializers är null.
newExpression. Typen implementerar IEnumerableinte .
Det finns ingen instansmetod med namnet "Lägg till" (skiftlägesokänslig) som deklareras i newExpression. Typ eller bastyp.
-eller-
Lägg till -metoden på newExpression. Typ eller dess bastyp tar inte exakt ett argument.
-eller-
Den typ som representeras av Type egenskapen för det första elementet initializers i kan inte tilldelas till argumenttypen för add-metoden på newExpression. Typ eller bastyp.
-eller-
Mer än en argumentkompatibel metod med namnet "Lägg till" (skiftlägesokänslig) finns på newExpression. Skriv och/eller dess bastyp.
Kommentarer
Egenskapen TypenewExpression för måste representera en typ som implementerar IEnumerable.
För att använda den här överlagringen av ListInit(NewExpression, Expression[]), newExpression. Typen eller dess bastyp måste deklarera en enskild metod med namnet "Lägg till" (skiftlägesokänslig) som tar exakt ett argument. Argumentets typ måste kunna tilldelas från den typ som representeras av Type egenskapen för det första elementet i initializers.
Egenskapen Initializers för den returnerade ListInitExpression innehåller ett element av typen ElementInit för varje element i initializers. Egenskapen Arguments för varje element Initializers i är en singleton-samling som innehåller motsvarande element i initializers. Egenskapen AddMethod för varje element Initializers i representerar den lägg till-metod som identifierades på newExpression. Typ eller bastyp.
Egenskapen Type för resultatet ListInitExpression är lika med newExpression. Typ.
Gäller för
ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)
Skapar en ListInitExpression som använder en angiven metod för att lägga till element i en samling.
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
Parametrar
- newExpression
- NewExpression
A NewExpression för att ange egenskapen NewExpression lika med.
- addMethod
- MethodInfo
En MethodInfo som representerar en instansmetod med namnet "Lägg till" (skiftlägesokänslig) som lägger till ett element i en samling.
- initializers
- IEnumerable<Expression>
En IEnumerable<T> som innehåller Expression objekt som ska användas för att fylla samlingen Initializers .
Returer
En ListInitExpression som har egenskapen NodeType lika med ListInit och egenskapen NewExpression inställd på det angivna värdet.
Undantag
newExpression eller initializers är null.
-eller-
Ett eller flera element i initializers är null.
newExpression. Typen implementerar IEnumerableinte .
-eller-
addMethod är inte null och den representerar inte en instansmetod med namnet "Lägg till" (skiftlägesokänslig) som tar exakt ett argument.
-eller-
addMethod är inte null och den typ som representeras av Type egenskapen för ett eller flera element i initializers kan inte tilldelas till argumenttypen för den metod som addMethod representerar.
addMethod är null och ingen instansmetod med namnet "Lägg till" som tar ett typkompatibelt argument finns på newExpression. Typ eller bastyp.
Kommentarer
Egenskapen TypenewExpression för måste representera en typ som implementerar IEnumerable.
Om addMethod är null, newExpression. Typen eller dess bastyp måste deklarera en enskild metod med namnet "Lägg till" (skiftlägesokänslig) som tar exakt ett argument. Om addMethod inte nullmåste den representera en instansmetod med namnet "Lägg till" (skiftlägesokänslig) som har exakt en parameter. Den typ som representeras av Type egenskapen för varje element initializers i måste kunna tilldelas till argumenttypen för lägg till-metoden.
Egenskapen Initializers för den returnerade ListInitExpression innehåller ett element av typen ElementInit för varje element i initializers. Egenskapen Arguments för varje element Initializers i är en singleton-samling som innehåller motsvarande element i initializers. Egenskapen AddMethod för varje element Initializers i är lika med addMethod.
Egenskapen Type för resultatet ListInitExpression är lika med newExpression. Typ.
Gäller för
ListInit(NewExpression, MethodInfo, Expression[])
Skapar en ListInitExpression som använder en angiven metod för att lägga till element i en samling.
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);
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
Parametrar
- newExpression
- NewExpression
A NewExpression för att ange egenskapen NewExpression lika med.
- addMethod
- MethodInfo
En MethodInfo som representerar en instansmetod som tar ett argument som lägger till ett element i en samling.
- initializers
- Expression[]
En matris med Expression objekt som ska användas för att fylla samlingen Initializers .
Returer
En ListInitExpression som har egenskapen NodeType lika med ListInit och egenskapen NewExpression inställd på det angivna värdet.
Undantag
newExpression eller initializers är null.
-eller-
Ett eller flera element i initializers är null.
newExpression. Typen implementerar IEnumerableinte .
-eller-
addMethod är inte null och den representerar inte en instansmetod med namnet "Lägg till" (skiftlägesokänslig) som tar exakt ett argument.
-eller-
addMethod är inte null och den typ som representeras av Type egenskapen för ett eller flera element i initializers kan inte tilldelas till argumenttypen för den metod som addMethod representerar.
addMethod är null och ingen instansmetod med namnet "Lägg till" som tar ett typkompatibelt argument finns på newExpression. Typ eller bastyp.
Kommentarer
Egenskapen TypenewExpression för måste representera en typ som implementerar IEnumerable.
Om addMethod är null, newExpression. Typen eller dess bastyp måste deklarera en enskild metod med namnet "Lägg till" (skiftlägesokänslig) som tar exakt ett argument. Om addMethod inte nullmåste den representera en instansmetod med namnet "Lägg till" (skiftlägesokänslig) som har exakt en parameter. Den typ som representeras av Type egenskapen för varje element initializers i måste kunna tilldelas till argumenttypen för lägg till-metoden.
Egenskapen Initializers för den returnerade ListInitExpression innehåller ett element av typen ElementInit för varje element i initializers. Egenskapen Arguments för varje element Initializers i är en singleton-samling som innehåller motsvarande element i initializers. Egenskapen AddMethod för varje element Initializers i är lika med addMethod.
Egenskapen Type för resultatet ListInitExpression är lika med newExpression. Typ.