Expression.ListInit Expression.ListInit Expression.ListInit Method

定義

ListInitExpression を作成します。Creates a ListInitExpression.

オーバーロード

ListInit(NewExpression, IEnumerable<ElementInit>) ListInit(NewExpression, IEnumerable<ElementInit>) ListInit(NewExpression, IEnumerable<ElementInit>)

指定した ListInitExpression オブジェクトを使用してコレクションを初期化する ElementInit を作成します。Creates a ListInitExpression that uses specified ElementInit objects to initialize a collection.

ListInit(NewExpression, IEnumerable<Expression>) ListInit(NewExpression, IEnumerable<Expression>) ListInit(NewExpression, IEnumerable<Expression>)

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。Creates a ListInitExpression that uses a method named "Add" to add elements to a collection.

ListInit(NewExpression, ElementInit[]) ListInit(NewExpression, ElementInit[]) ListInit(NewExpression, ElementInit[])

指定した ListInitExpression オブジェクトを使用してコレクションを初期化する ElementInit を作成します。Creates a ListInitExpression that uses specified ElementInit objects to initialize a collection.

ListInit(NewExpression, Expression[]) ListInit(NewExpression, Expression[]) ListInit(NewExpression, Expression[])

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。Creates a ListInitExpression that uses a method named "Add" to add elements to a collection.

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>) ListInit(NewExpression, MethodInfo, IEnumerable<Expression>) ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

指定したメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。Creates a ListInitExpression that uses a specified method to add elements to a collection.

ListInit(NewExpression, MethodInfo, Expression[]) ListInit(NewExpression, MethodInfo, Expression[]) ListInit(NewExpression, MethodInfo, Expression[])

指定したメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。Creates a ListInitExpression that uses a specified method to add elements to a collection.

ListInit(NewExpression, IEnumerable<ElementInit>) ListInit(NewExpression, IEnumerable<ElementInit>) ListInit(NewExpression, IEnumerable<ElementInit>)

指定した ListInitExpression オブジェクトを使用してコレクションを初期化する ElementInit を作成します。Creates a ListInitExpression that uses specified ElementInit objects to initialize a collection.

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

パラメーター

newExpression
NewExpression NewExpression NewExpression

NewExpression プロパティを等しく設定する NewExpressionA NewExpression to set the NewExpression property equal to.

initializers
IEnumerable<ElementInit>

IEnumerable<T> コレクションへの読み込みに使用する ElementInit オブジェクトを含む InitializersAn IEnumerable<T> that contains ElementInit objects to use to populate the Initializers collection.

戻り値

ListInitExpression と等しい NodeType プロパティと、指定した値に設定された ListInit プロパティおよび NewExpression プロパティを含む InitializersA ListInitExpression that has the NodeType property equal to ListInit and the NewExpression and Initializers properties set to the specified values.

例外

newExpression または initializersnull です。newExpression or initializers is null.

または-or- initializers の 1 つ以上の要素が null です。One or more elements of initializers are null.

newExpression.Type は IEnumerable を実装していません。newExpression.Type does not implement IEnumerable.

次の例を使用する方法を示します、ListInit(NewExpression, ElementInit[])を作成する方法、ListInitExpressionキー/値ペアの 2 つの新しいディクショナリのインスタンスの初期化を表します。The following example demonstrates how to use the ListInit(NewExpression, ElementInit[]) method to create a ListInitExpression that represents the initialization of a new dictionary instance with two key-value pairs.

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

注釈

TypeプロパティのnewExpressionを実装する型を表す必要がありますIEnumerableします。The Type property of newExpression must represent a type that implements IEnumerable.

TypeプロパティListInitExpressionと等しいnewExpressionします。入力します。The Type property of the resulting ListInitExpression is equal to newExpression.Type.

ListInit(NewExpression, IEnumerable<Expression>) ListInit(NewExpression, IEnumerable<Expression>) ListInit(NewExpression, IEnumerable<Expression>)

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。Creates a ListInitExpression that uses a method named "Add" to add elements to a collection.

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

パラメーター

newExpression
NewExpression NewExpression NewExpression

NewExpression プロパティを等しく設定する NewExpressionA NewExpression to set the NewExpression property equal to.

initializers
IEnumerable<Expression>

IEnumerable<T> コレクションへの読み込みに使用する Expression オブジェクトを含む InitializersAn IEnumerable<T> that contains Expression objects to use to populate the Initializers collection.

戻り値

ListInitExpression と等しい NodeType プロパティおよび指定した値に設定された ListInit プロパティを含む NewExpressionA ListInitExpression that has the NodeType property equal to ListInit and the NewExpression property set to the specified value.

例外

newExpression または initializersnull です。newExpression or initializers is null.

または-or- initializers の 1 つ以上の要素が null です。One or more elements of initializers are null.

newExpression.Type は IEnumerable を実装していません。newExpression.Type does not implement IEnumerable.

newExpression.Type またはその基本型で、"Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドは宣言されていません。There is no instance method named "Add" (case insensitive) declared in newExpression.Type or its base type.

または-or- newExpression.Type またはその基本型の Add メソッドは、ちょうど 1 つの引数を受け取りません。The add method on newExpression.Type or its base type does not take exactly one argument.

または-or- initializers の最初の要素の Type プロパティが表す型は、newExpression.Type またはその基本型の Add メソッドの引数の型に割り当てることができません。The type represented by the Type property of the first element of initializers is not assignable to the argument type of the add method on newExpression.Type or its base type.

または-or- "Add" (大文字と小文字を区別しない) という名前の、複数の引数と互換性のあるメソッドが、newExpression.Type および/またはその基本型に存在します。More than one argument-compatible method named "Add" (case-insensitive) exists on newExpression.Type and/or its base type.

注釈

TypeプロパティのnewExpressionを実装する型を表す必要がありますIEnumerableします。The Type property of newExpression must represent a type that implements IEnumerable.

このオーバー ロードを使用するにはListInit(NewExpression, IEnumerable<Expression>)newExpressionします。型またはその基本型は、"Add"(大文字と小文字を区別しない) という名前を正確に 1 つの引数を受け取る 1 つのメソッドを宣言する必要があります。In order to use this overload of ListInit(NewExpression, IEnumerable<Expression>), newExpression.Type or its base type must declare a single method named "Add" (case insensitive) that takes exactly one argument. 引数の型は、によって表される型から割り当て可能である必要があります、Typeプロパティの最初の要素のinitializersします。The type of the argument must be assignable from the type represented by the Type property of the first element of initializers.

Initializers 、返されたプロパティListInitExpression型の 1 つの要素を含むElementInitの各要素に対してinitializersします。The Initializers property of the returned ListInitExpression contains one element of type ElementInit for each element of initializers. Argumentsの各要素のプロパティInitializersはシングルトン コレクションの対応する要素が含まれるinitializersします。The Arguments property of each element of Initializers is a singleton collection that contains the corresponding element of initializers. AddMethodの各要素のプロパティInitializersで検出された追加のメソッドを表すnewExpressionします。型またはその基本型。The AddMethod property of each element of Initializers represents the add method that was discovered on newExpression.Type or its base type.

TypeプロパティListInitExpressionと等しいnewExpressionします。入力します。The Type property of the resulting ListInitExpression is equal to newExpression.Type.

ListInit(NewExpression, ElementInit[]) ListInit(NewExpression, ElementInit[]) ListInit(NewExpression, ElementInit[])

指定した ListInitExpression オブジェクトを使用してコレクションを初期化する ElementInit を作成します。Creates a ListInitExpression that uses specified ElementInit objects to initialize a collection.

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

パラメーター

newExpression
NewExpression NewExpression NewExpression

NewExpression プロパティを等しく設定する NewExpressionA NewExpression to set the NewExpression property equal to.

initializers
ElementInit[]

ElementInit コレクションへの読み込みに使用する Initializers オブジェクトの配列。An array of ElementInit objects to use to populate the Initializers collection.

戻り値

ListInitExpression と等しい NodeType プロパティと、指定した値に設定された ListInit プロパティおよび NewExpression プロパティを含む InitializersA ListInitExpression that has the NodeType property equal to ListInit and the NewExpression and Initializers properties set to the specified values.

例外

newExpression または initializersnull です。newExpression or initializers is null.

または-or- initializers の 1 つ以上の要素が null です。One or more elements of initializers are null.

newExpression.Type は IEnumerable を実装していません。newExpression.Type does not implement IEnumerable.

次の例を使用する方法を示します、ListInit(NewExpression, ElementInit[])を作成する方法、ListInitExpressionキー/値ペアの 2 つの新しいディクショナリのインスタンスの初期化を表します。The following example demonstrates how to use the ListInit(NewExpression, ElementInit[]) method to create a ListInitExpression that represents the initialization of a new dictionary instance with two key-value pairs.

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

注釈

TypeプロパティのnewExpressionを実装する型を表す必要がありますIEnumerableします。The Type property of newExpression must represent a type that implements IEnumerable.

TypeプロパティListInitExpressionと等しいnewExpressionします。入力します。The Type property of the resulting ListInitExpression is equal to newExpression.Type.

ListInit(NewExpression, Expression[]) ListInit(NewExpression, Expression[]) ListInit(NewExpression, Expression[])

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。Creates a ListInitExpression that uses a method named "Add" to add elements to a collection.

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

パラメーター

newExpression
NewExpression NewExpression NewExpression

NewExpression プロパティを等しく設定する NewExpressionA NewExpression to set the NewExpression property equal to.

initializers
Expression[]

Expression コレクションへの読み込みに使用する Initializers オブジェクトの配列。An array of Expression objects to use to populate the Initializers collection.

戻り値

ListInitExpression と等しい NodeType プロパティおよび指定した値に設定された ListInit プロパティを含む NewExpressionA ListInitExpression that has the NodeType property equal to ListInit and the NewExpression property set to the specified value.

例外

newExpression または initializersnull です。newExpression or initializers is null.

または-or- initializers の 1 つ以上の要素が null です。One or more elements of initializers are null.

newExpression.Type は IEnumerable を実装していません。newExpression.Type does not implement IEnumerable.

newExpression.Type またはその基本型で、"Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドは宣言されていません。There is no instance method named "Add" (case insensitive) declared in newExpression.Type or its base type.

または-or- newExpression.Type またはその基本型の Add メソッドは、ちょうど 1 つの引数を受け取りません。The add method on newExpression.Type or its base type does not take exactly one argument.

または-or- initializers の最初の要素の Type プロパティが表す型は、newExpression.Type またはその基本型の Add メソッドの引数の型に割り当てることができません。The type represented by the Type property of the first element of initializers is not assignable to the argument type of the add method on newExpression.Type or its base type.

または-or- "Add" (大文字と小文字を区別しない) という名前の、複数の引数と互換性のあるメソッドが、newExpression.Type および/またはその基本型に存在します。More than one argument-compatible method named "Add" (case-insensitive) exists on newExpression.Type and/or its base type.

注釈

TypeプロパティのnewExpressionを実装する型を表す必要がありますIEnumerableします。The Type property of newExpression must represent a type that implements IEnumerable.

このオーバー ロードを使用するにはListInit(NewExpression, Expression[])newExpressionします。型またはその基本型は、"Add"(大文字と小文字を区別しない) という名前を正確に 1 つの引数を受け取る 1 つのメソッドを宣言する必要があります。In order to use this overload of ListInit(NewExpression, Expression[]), newExpression.Type or its base type must declare a single method named "Add" (case insensitive) that takes exactly one argument. 引数の型は、によって表される型から割り当て可能である必要があります、Typeプロパティの最初の要素のinitializersします。The type of the argument must be assignable from the type represented by the Type property of the first element of initializers.

Initializers 、返されたプロパティListInitExpression型の 1 つの要素を含むElementInitの各要素に対してinitializersします。The Initializers property of the returned ListInitExpression contains one element of type ElementInit for each element of initializers. Argumentsの各要素のプロパティInitializersはシングルトン コレクションの対応する要素が含まれるinitializersします。The Arguments property of each element of Initializers is a singleton collection that contains the corresponding element of initializers. AddMethodの各要素のプロパティInitializersで検出された追加のメソッドを表すnewExpressionします。型またはその基本型。The AddMethod property of each element of Initializers represents the add method that was discovered on newExpression.Type or its base type.

TypeプロパティListInitExpressionと等しいnewExpressionします。入力します。The Type property of the resulting ListInitExpression is equal to newExpression.Type.

ListInit(NewExpression, MethodInfo, IEnumerable<Expression>) ListInit(NewExpression, MethodInfo, IEnumerable<Expression>) ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)

指定したメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。Creates a ListInitExpression that uses a specified method to add elements to a collection.

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

パラメーター

newExpression
NewExpression NewExpression NewExpression

NewExpression プロパティを等しく設定する NewExpressionA NewExpression to set the NewExpression property equal to.

addMethod
MethodInfo MethodInfo MethodInfo

コレクションに要素を追加する、"Add" (大文字と小文字は区別されません) という名前のインスタンス メソッドを表す MethodInfoA MethodInfo that represents an instance method named "Add" (case insensitive), that adds an element to a collection.

initializers
IEnumerable<Expression>

IEnumerable<T> コレクションへの読み込みに使用する Expression オブジェクトを含む InitializersAn IEnumerable<T> that contains Expression objects to use to populate the Initializers collection.

戻り値

ListInitExpression と等しい NodeType プロパティおよび指定した値に設定された ListInit プロパティを含む NewExpressionA ListInitExpression that has the NodeType property equal to ListInit and the NewExpression property set to the specified value.

例外

newExpression または initializersnull です。newExpression or initializers is null.

または-or- initializers の 1 つ以上の要素が null です。One or more elements of initializers are null.

newExpression.Type は IEnumerable を実装していません。newExpression.Type does not implement IEnumerable.

または-or- addMethodnull ではなく、受け取る引数が 1 つだけの "Add" (大文字と小文字は区別されません) という名前のインスタンス メソッドを表しません。addMethod is not null and it does not represent an instance method named "Add" (case insensitive) that takes exactly one argument.

または-or- addMethodnull ではなく、initializers の 1 つ以上の要素の Type プロパティによって表される型を addMethod が表すメソッドの引数型に代入することはできません。addMethod is not null and the type represented by the Type property of one or more elements of initializers is not assignable to the argument type of the method that addMethod represents.

addMethodnull で、1 つの型互換の引数を受け取る "Add" という名前のインスタンス メソッドが newExpression.Type またはその基本型に存在しません。addMethod is null and no instance method named "Add" that takes one type-compatible argument exists on newExpression.Type or its base type.

注釈

TypeプロパティのnewExpressionを実装する型を表す必要がありますIEnumerableします。The Type property of newExpression must represent a type that implements IEnumerable.

場合addMethodnullnewExpressionします。型またはその基本型は、"Add"(大文字と小文字を区別しない) という名前を正確に 1 つの引数を受け取る 1 つのメソッドを宣言する必要があります。If addMethod is null, newExpression.Type or its base type must declare a single method named "Add" (case insensitive) that takes exactly one argument. 場合addMethodないnull、"Add"(大文字と小文字を区別しない) という名前を正確に 1 つのパラメーターを持つインスタンス メソッドを表す必要があります。If addMethod is not null, it must represent an instance method named "Add" (case insensitive) that has exactly one parameter. によって表される型、Typeの各要素のプロパティinitializersadd メソッドの引数の型に代入する必要があります。The type represented by the Type property of each element of initializers must be assignable to the argument type of the add method.

Initializers 、返されたプロパティListInitExpression型の 1 つの要素を含むElementInitの各要素に対してinitializersします。The Initializers property of the returned ListInitExpression contains one element of type ElementInit for each element of initializers. Argumentsの各要素のプロパティInitializersはシングルトン コレクションの対応する要素が含まれるinitializersします。The Arguments property of each element of Initializers is a singleton collection that contains the corresponding element of initializers. AddMethodの各要素のプロパティInitializersと等しいaddMethodします。The AddMethod property of each element of Initializers is equal to addMethod.

TypeプロパティListInitExpressionと等しいnewExpressionします。入力します。The Type property of the resulting ListInitExpression is equal to newExpression.Type.

ListInit(NewExpression, MethodInfo, Expression[]) ListInit(NewExpression, MethodInfo, Expression[]) ListInit(NewExpression, MethodInfo, Expression[])

指定したメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。Creates a ListInitExpression that uses a specified method to add elements to a collection.

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

パラメーター

newExpression
NewExpression NewExpression NewExpression

NewExpression プロパティを等しく設定する NewExpressionA NewExpression to set the NewExpression property equal to.

addMethod
MethodInfo MethodInfo MethodInfo

1 つの引数を受け取り、コレクションに要素を追加するインスタンス メソッドを表す MethodInfoA MethodInfo that represents an instance method that takes one argument, that adds an element to a collection.

initializers
Expression[]

Expression コレクションへの読み込みに使用する Initializers オブジェクトの配列。An array of Expression objects to use to populate the Initializers collection.

戻り値

ListInitExpression と等しい NodeType プロパティおよび指定した値に設定された ListInit プロパティを含む NewExpressionA ListInitExpression that has the NodeType property equal to ListInit and the NewExpression property set to the specified value.

例外

newExpression または initializersnull です。newExpression or initializers is null.

または-or- initializers の 1 つ以上の要素が null です。One or more elements of initializers are null.

newExpression.Type は IEnumerable を実装していません。newExpression.Type does not implement IEnumerable.

または-or- addMethodnull ではなく、受け取る引数が 1 つだけの "Add" (大文字と小文字は区別されません) という名前のインスタンス メソッドを表しません。addMethod is not null and it does not represent an instance method named "Add" (case insensitive) that takes exactly one argument.

または-or- addMethodnull ではなく、initializers の 1 つ以上の要素の Type プロパティによって表される型を addMethod が表すメソッドの引数型に代入することはできません。addMethod is not null and the type represented by the Type property of one or more elements of initializers is not assignable to the argument type of the method that addMethod represents.

addMethodnull で、1 つの型互換の引数を受け取る "Add" という名前のインスタンス メソッドが newExpression.Type またはその基本型に存在しません。addMethod is null and no instance method named "Add" that takes one type-compatible argument exists on newExpression.Type or its base type.

注釈

TypeプロパティのnewExpressionを実装する型を表す必要がありますIEnumerableします。The Type property of newExpression must represent a type that implements IEnumerable.

場合addMethodnullnewExpressionします。型またはその基本型は、"Add"(大文字と小文字を区別しない) という名前を正確に 1 つの引数を受け取る 1 つのメソッドを宣言する必要があります。If addMethod is null, newExpression.Type or its base type must declare a single method named "Add" (case insensitive) that takes exactly one argument. 場合addMethodないnull、"Add"(大文字と小文字を区別しない) という名前を正確に 1 つのパラメーターを持つインスタンス メソッドを表す必要があります。If addMethod is not null, it must represent an instance method named "Add" (case insensitive) that has exactly one parameter. によって表される型、Typeの各要素のプロパティinitializersadd メソッドの引数の型に代入する必要があります。The type represented by the Type property of each element of initializers must be assignable to the argument type of the add method.

Initializers 、返されたプロパティListInitExpression型の 1 つの要素を含むElementInitの各要素に対してinitializersします。The Initializers property of the returned ListInitExpression contains one element of type ElementInit for each element of initializers. Argumentsの各要素のプロパティInitializersはシングルトン コレクションの対応する要素が含まれるinitializersします。The Arguments property of each element of Initializers is a singleton collection that contains the corresponding element of initializers. AddMethodの各要素のプロパティInitializersと等しいaddMethodします。The AddMethod property of each element of Initializers is equal to addMethod.

TypeプロパティListInitExpressionと等しいnewExpressionします。入力します。The Type property of the resulting ListInitExpression is equal to newExpression.Type.

適用対象