Expression.NewArrayInit Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
NewArrayExpression Создает объект, представляющий создание одномерного массива и инициализацию его из списка элементов.
Перегрузки
| Имя | Описание |
|---|---|
| NewArrayInit(Type, IEnumerable<Expression>) |
NewArrayExpression Создает объект, представляющий создание одномерного массива и инициализацию его из списка элементов. |
| NewArrayInit(Type, Expression[]) |
NewArrayExpression Создает объект, представляющий создание одномерного массива и инициализацию его из списка элементов. |
NewArrayInit(Type, IEnumerable<Expression>)
- Исходный код:
- NewArrayExpression.cs
- Исходный код:
- NewArrayExpression.cs
- Исходный код:
- NewArrayExpression.cs
- Исходный код:
- NewArrayExpression.cs
- Исходный код:
- NewArrayExpression.cs
NewArrayExpression Создает объект, представляющий создание одномерного массива и инициализацию его из списка элементов.
public:
static System::Linq::Expressions::NewArrayExpression ^ NewArrayInit(Type ^ type, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ initializers);
public static System.Linq.Expressions.NewArrayExpression NewArrayInit(Type type, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Creating arrays at runtime requires dynamic code generation.")]
public static System.Linq.Expressions.NewArrayExpression NewArrayInit(Type type, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
static member NewArrayInit : Type * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.NewArrayExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Creating arrays at runtime requires dynamic code generation.")>]
static member NewArrayInit : Type * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.NewArrayExpression
Public Shared Function NewArrayInit (type As Type, initializers As IEnumerable(Of Expression)) As NewArrayExpression
Параметры
- initializers
- IEnumerable<Expression>
Объект IEnumerable<T> , содержащий Expression объекты, используемые для заполнения Expressions коллекции.
Возвращаемое значение
Значение NewArrayExpression , равное NodeType свойству NewArrayInit и Expressions свойству, заданному указанному значению.
- Атрибуты
Исключения
Свойство Type элемента initializers представляет тип, который недоступен для типа, type представляющего.
Примеры
В следующем примере показано, как использовать NewArrayInit метод для создания дерева выражений, представляющего создание одномерного массива строк, инициализированного списком строковых выражений.
List<System.Linq.Expressions.Expression> trees =
new List<System.Linq.Expressions.Expression>()
{ System.Linq.Expressions.Expression.Constant("oak"),
System.Linq.Expressions.Expression.Constant("fir"),
System.Linq.Expressions.Expression.Constant("spruce"),
System.Linq.Expressions.Expression.Constant("alder") };
// Create an expression tree that represents creating and
// initializing a one-dimensional array of type string.
System.Linq.Expressions.NewArrayExpression newArrayExpression =
System.Linq.Expressions.Expression.NewArrayInit(typeof(string), trees);
// Output the string representation of the Expression.
Console.WriteLine(newArrayExpression.ToString());
// This code produces the following output:
//
// new [] {"oak", "fir", "spruce", "alder"}
Dim trees As New System.Collections.Generic.List(Of System.Linq.Expressions.Expression) _
(New System.Linq.Expressions.Expression() _
{System.Linq.Expressions.Expression.Constant("oak"), _
System.Linq.Expressions.Expression.Constant("fir"), _
System.Linq.Expressions.Expression.Constant("spruce"), _
System.Linq.Expressions.Expression.Constant("alder")})
' Create an expression tree that represents creating and
' initializing a one-dimensional array of type string.
Dim newArrayExpression As System.Linq.Expressions.NewArrayExpression = _
System.Linq.Expressions.Expression.NewArrayInit(Type.GetType("System.String"), trees)
' Output the string representation of the Expression.
Console.WriteLine(newArrayExpression.ToString())
' This code produces the following output:
'
' new [] {"oak", "fir", "spruce", "alder"}
Комментарии
Свойство Type каждого элемента initializers должно представлять тип, который можно назначить типу, представленному type, возможно, после его кавычек.
Замечание
Элемент будет кавычек только в том Expressionслучаеtype. Кавыкание означает, что элемент упаковывается в Quote узел. Результирующий узел — это UnaryExpression свойство, свойство которого Operandinitializersявляется элементом .
Свойство Type результирующего NewArrayExpression объекта представляет тип массива, ранг которого равен 1, а тип элемента — type.
Применяется к
NewArrayInit(Type, Expression[])
- Исходный код:
- NewArrayExpression.cs
- Исходный код:
- NewArrayExpression.cs
- Исходный код:
- NewArrayExpression.cs
- Исходный код:
- NewArrayExpression.cs
- Исходный код:
- NewArrayExpression.cs
NewArrayExpression Создает объект, представляющий создание одномерного массива и инициализацию его из списка элементов.
public:
static System::Linq::Expressions::NewArrayExpression ^ NewArrayInit(Type ^ type, ... cli::array <System::Linq::Expressions::Expression ^> ^ initializers);
public static System.Linq.Expressions.NewArrayExpression NewArrayInit(Type type, params System.Linq.Expressions.Expression[] initializers);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Creating arrays at runtime requires dynamic code generation.")]
public static System.Linq.Expressions.NewArrayExpression NewArrayInit(Type type, params System.Linq.Expressions.Expression[] initializers);
static member NewArrayInit : Type * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.NewArrayExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Creating arrays at runtime requires dynamic code generation.")>]
static member NewArrayInit : Type * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.NewArrayExpression
Public Shared Function NewArrayInit (type As Type, ParamArray initializers As Expression()) As NewArrayExpression
Параметры
- initializers
- Expression[]
Массив объектов, используемых Expression для заполнения Expressions коллекции.
Возвращаемое значение
Значение NewArrayExpression , равное NodeType свойству NewArrayInit и Expressions свойству, заданному указанному значению.
- Атрибуты
Исключения
Свойство Type элемента initializers представляет тип, который не может назначаться типу type.
Примеры
В следующем примере показано, как использовать NewArrayInit метод для создания дерева выражений, представляющего создание одномерного массива строк, инициализированного списком строковых выражений.
List<System.Linq.Expressions.Expression> trees =
new List<System.Linq.Expressions.Expression>()
{ System.Linq.Expressions.Expression.Constant("oak"),
System.Linq.Expressions.Expression.Constant("fir"),
System.Linq.Expressions.Expression.Constant("spruce"),
System.Linq.Expressions.Expression.Constant("alder") };
// Create an expression tree that represents creating and
// initializing a one-dimensional array of type string.
System.Linq.Expressions.NewArrayExpression newArrayExpression =
System.Linq.Expressions.Expression.NewArrayInit(typeof(string), trees);
// Output the string representation of the Expression.
Console.WriteLine(newArrayExpression.ToString());
// This code produces the following output:
//
// new [] {"oak", "fir", "spruce", "alder"}
Dim trees As New System.Collections.Generic.List(Of System.Linq.Expressions.Expression) _
(New System.Linq.Expressions.Expression() _
{System.Linq.Expressions.Expression.Constant("oak"), _
System.Linq.Expressions.Expression.Constant("fir"), _
System.Linq.Expressions.Expression.Constant("spruce"), _
System.Linq.Expressions.Expression.Constant("alder")})
' Create an expression tree that represents creating and
' initializing a one-dimensional array of type string.
Dim newArrayExpression As System.Linq.Expressions.NewArrayExpression = _
System.Linq.Expressions.Expression.NewArrayInit(Type.GetType("System.String"), trees)
' Output the string representation of the Expression.
Console.WriteLine(newArrayExpression.ToString())
' This code produces the following output:
'
' new [] {"oak", "fir", "spruce", "alder"}
Комментарии
Свойство Type каждого элемента initializers должно представлять тип, который можно назначить типу, представленному type, возможно, после его кавычек.
Замечание
Элемент будет кавычек только в том Expressionслучаеtype. Кавыкание означает, что элемент упаковывается в Quote узел. Результирующий узел — это UnaryExpression свойство, свойство которого Operandinitializersявляется элементом .
Свойство Type результирующего NewArrayExpression объекта представляет тип массива, ранг которого равен 1, а тип элемента — type.