Expression.ListInit Метод

Определение

Создает объект ListInitExpression.

Перегрузки

Имя Описание
ListInit(NewExpression, IEnumerable<ElementInit>)

Создает объект, использующий указанные ListInitExpressionElementInit объекты для инициализации коллекции.

ListInit(NewExpression, IEnumerable<Expression>)

ListInitExpression Создает метод с именем Add для добавления элементов в коллекцию.

ListInit(NewExpression, ElementInit[])

Создает объект, использующий указанные ListInitExpressionElementInit объекты для инициализации коллекции.

ListInit(NewExpression, Expression[])

ListInitExpression Создает метод с именем Add для добавления элементов в коллекцию.

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

Создает объект ListInitExpression , использующий указанный метод для добавления элементов в коллекцию.

ListInit(NewExpression, MethodInfo, Expression[])

Создает объект ListInitExpression , использующий указанный метод для добавления элементов в коллекцию.

ListInit(NewExpression, IEnumerable<ElementInit>)

Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs

Создает объект, использующий указанные ListInitExpressionElementInit объекты для инициализации коллекции.

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

Параметры

newExpression
NewExpression

Значение, NewExpression равное свойству NewExpression .

initializers
IEnumerable<ElementInit>

Объект IEnumerable<T> , содержащий ElementInit объекты, используемые для заполнения Initializers коллекции.

Возвращаемое значение

Значение ListInitExpression , равное свойству NodeTypeListInit и NewExpressionInitializers свойствам, заданным указанным значениям.

Исключения

newExpression или initializers есть null.

–или–

Один или несколько элементовinitializers.null

newExpression. Тип не реализует IEnumerable.

Примеры

В следующем примере показано, как использовать ListInit(NewExpression, ElementInit[]) метод для создания ListInitExpression , представляющего инициализацию нового экземпляра словаря с двумя парами "ключ-значение".

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

Комментарии

Свойство TypenewExpression должно представлять тип, реализующий IEnumerable.

Свойство Type результирующего ListInitExpression объекта равно newExpression. Тип.

Применяется к

ListInit(NewExpression, IEnumerable<Expression>)

Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs

ListInitExpression Создает метод с именем Add для добавления элементов в коллекцию.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
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

Параметры

newExpression
NewExpression

Значение, NewExpression равное свойству NewExpression .

initializers
IEnumerable<Expression>

Объект IEnumerable<T> , содержащий Expression объекты, используемые для заполнения Initializers коллекции.

Возвращаемое значение

Значение ListInitExpression , равное NodeType свойству ListInit и NewExpression свойству, заданному указанному значению.

Атрибуты

Исключения

newExpression или initializers есть null.

–или–

Один или несколько элементовinitializers.null

newExpression. Тип не реализует IEnumerable.

Не существует метода экземпляра с именем Add (без учета регистра), объявленного в newExpression. Тип или базовый тип.

–или–

Метод add on newExpression. Тип или базовый тип не принимает ровно один аргумент.

–или–

Тип, представленный свойством Type первого элемента initializers , не может назначаться типу аргумента метода newExpressionдобавления. Тип или базовый тип.

–или–

Существует newExpressionнесколько методов, совместимых с аргументами с именем "Add" (без учета регистра). Тип и (или) базовый тип.

Комментарии

Свойство TypenewExpression должно представлять тип, реализующий IEnumerable.

Для использования этой перегрузки ListInit(NewExpression, IEnumerable<Expression>), newExpression Тип или его базовый тип должен объявлять один метод с именем Add (без учета регистра), который принимает ровно один аргумент. Тип аргумента должен быть назначен из типа, Type представленного свойством первого элемента initializers.

Свойство Initializers возвращаемого ListInitExpression элемента содержит один элемент типа ElementInit для каждого элемента initializers. Свойство Arguments каждого элемента Initializers является одноэлементной коллекцией, содержащей соответствующий элемент initializers. Свойство AddMethod каждого элемента Initializers представляет метод добавления, обнаруженный в newExpression. Тип или базовый тип.

Свойство Type результирующего ListInitExpression объекта равно newExpression. Тип.

Применяется к

ListInit(NewExpression, ElementInit[])

Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs

Создает объект, использующий указанные ListInitExpressionElementInit объекты для инициализации коллекции.

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

Параметры

newExpression
NewExpression

Значение, NewExpression равное свойству NewExpression .

initializers
ElementInit[]

Массив объектов, используемых ElementInit для заполнения Initializers коллекции.

Возвращаемое значение

Значение ListInitExpression , равное свойству NodeTypeListInit и NewExpressionInitializers свойствам, заданным указанным значениям.

Исключения

newExpression или initializers есть null.

–или–

Один или несколько элементовinitializers.null

newExpression. Тип не реализует IEnumerable.

Примеры

В следующем примере показано, как использовать ListInit(NewExpression, ElementInit[]) метод для создания ListInitExpression , представляющего инициализацию нового экземпляра словаря с двумя парами "ключ-значение".

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

Комментарии

Свойство TypenewExpression должно представлять тип, реализующий IEnumerable.

Свойство Type результирующего ListInitExpression объекта равно newExpression. Тип.

Применяется к

ListInit(NewExpression, Expression[])

Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs

ListInitExpression Создает метод с именем Add для добавления элементов в коллекцию.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.ListInitExpression ListInit(System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.Expression[] initializers);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
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

Параметры

newExpression
NewExpression

Значение, NewExpression равное свойству NewExpression .

initializers
Expression[]

Массив объектов, используемых Expression для заполнения Initializers коллекции.

Возвращаемое значение

Значение ListInitExpression , равное NodeType свойству ListInit и NewExpression свойству, заданному указанному значению.

Атрибуты

Исключения

newExpression или initializers есть null.

–или–

Один или несколько элементовinitializers.null

newExpression. Тип не реализует IEnumerable.

Не существует метода экземпляра с именем Add (без учета регистра), объявленного в newExpression. Тип или базовый тип.

–или–

Метод add on newExpression. Тип или базовый тип не принимает ровно один аргумент.

–или–

Тип, представленный свойством Type первого элемента initializers , не может назначаться типу аргумента метода newExpressionдобавления. Тип или базовый тип.

–или–

Существует newExpressionнесколько методов, совместимых с аргументами с именем "Add" (без учета регистра). Тип и (или) базовый тип.

Комментарии

Свойство TypenewExpression должно представлять тип, реализующий IEnumerable.

Для использования этой перегрузки ListInit(NewExpression, Expression[]), newExpression Тип или его базовый тип должен объявлять один метод с именем Add (без учета регистра), который принимает ровно один аргумент. Тип аргумента должен быть назначен из типа, Type представленного свойством первого элемента initializers.

Свойство Initializers возвращаемого ListInitExpression элемента содержит один элемент типа ElementInit для каждого элемента initializers. Свойство Arguments каждого элемента Initializers является одноэлементной коллекцией, содержащей соответствующий элемент initializers. Свойство AddMethod каждого элемента Initializers представляет метод добавления, обнаруженный в newExpression. Тип или базовый тип.

Свойство Type результирующего ListInitExpression объекта равно newExpression. Тип.

Применяется к

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs

Создает объект ListInitExpression , использующий указанный метод для добавления элементов в коллекцию.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
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

Параметры

newExpression
NewExpression

Значение, NewExpression равное свойству NewExpression .

addMethod
MethodInfo

Объект MethodInfo , представляющий метод экземпляра с именем Add (без учета регистра), который добавляет элемент в коллекцию.

initializers
IEnumerable<Expression>

Объект IEnumerable<T> , содержащий Expression объекты, используемые для заполнения Initializers коллекции.

Возвращаемое значение

Значение ListInitExpression , равное NodeType свойству ListInit и NewExpression свойству, заданному указанному значению.

Атрибуты

Исключения

newExpression или initializers есть null.

–или–

Один или несколько элементовinitializers.null

newExpression. Тип не реализует IEnumerable.

–или–

addMethod не null является и не представляет метод экземпляра с именем Add (без учета регистра), который принимает ровно один аргумент.

–или–

addMethod не null является и тип, представленный свойством Type одного или нескольких элементов initializers , не может быть назначен типу аргумента метода, addMethod представляющего.

addMethod не имеет метода null экземпляра с именем "Add", который принимает один аргумент, совместимый с типом, существует в newExpression. Тип или базовый тип.

Комментарии

Свойство TypenewExpression должно представлять тип, реализующий IEnumerable.

Если addMethod имеет значение null, то newExpressionесть . Тип или его базовый тип должен объявлять один метод с именем Add (без учета регистра), который принимает ровно один аргумент. Если addMethod это не nullтак, он должен представлять метод экземпляра с именем Add (без учета регистра), который имеет ровно один параметр. Тип, представленный свойством Type каждого элемента initializers , должен быть назначен типу аргумента метода add.

Свойство Initializers возвращаемого ListInitExpression элемента содержит один элемент типа ElementInit для каждого элемента initializers. Свойство Arguments каждого элемента Initializers является одноэлементной коллекцией, содержащей соответствующий элемент initializers. Свойство AddMethod каждого элемента Initializers равно addMethod.

Свойство Type результирующего ListInitExpression объекта равно newExpression. Тип.

Применяется к

ListInit(NewExpression, MethodInfo, Expression[])

Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs
Исходный код:
ListInitExpression.cs

Создает объект ListInitExpression , использующий указанный метод для добавления элементов в коллекцию.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member ListInit : System.Linq.Expressions.NewExpression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.ListInitExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
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

Параметры

newExpression
NewExpression

Значение, NewExpression равное свойству NewExpression .

addMethod
MethodInfo

Объект MethodInfo , представляющий метод экземпляра, который принимает один аргумент, который добавляет элемент в коллекцию.

initializers
Expression[]

Массив объектов, используемых Expression для заполнения Initializers коллекции.

Возвращаемое значение

Значение ListInitExpression , равное NodeType свойству ListInit и NewExpression свойству, заданному указанному значению.

Атрибуты

Исключения

newExpression или initializers есть null.

–или–

Один или несколько элементовinitializers.null

newExpression. Тип не реализует IEnumerable.

–или–

addMethod не null является и не представляет метод экземпляра с именем Add (без учета регистра), который принимает ровно один аргумент.

–или–

addMethod не null является и тип, представленный свойством Type одного или нескольких элементов initializers , не может быть назначен типу аргумента метода, addMethod представляющего.

addMethod не имеет метода null экземпляра с именем "Add", который принимает один аргумент, совместимый с типом, существует в newExpression. Тип или базовый тип.

Комментарии

Свойство TypenewExpression должно представлять тип, реализующий IEnumerable.

Если addMethod имеет значение null, то newExpressionесть . Тип или его базовый тип должен объявлять один метод с именем Add (без учета регистра), который принимает ровно один аргумент. Если addMethod это не nullтак, он должен представлять метод экземпляра с именем Add (без учета регистра), который имеет ровно один параметр. Тип, представленный свойством Type каждого элемента initializers , должен быть назначен типу аргумента метода add.

Свойство Initializers возвращаемого ListInitExpression элемента содержит один элемент типа ElementInit для каждого элемента initializers. Свойство Arguments каждого элемента Initializers является одноэлементной коллекцией, содержащей соответствующий элемент initializers. Свойство AddMethod каждого элемента Initializers равно addMethod.

Свойство Type результирующего ListInitExpression объекта равно newExpression. Тип.

Применяется к