Language

Expression.ListInit メソッド

定義

ListInitExpressionを作成します。

オーバーロード

名前 説明
ListInit(NewExpression, IEnumerable<ElementInit>)

指定したListInitExpression オブジェクトを使用してコレクションを初期化するElementInitを作成します。

ListInit(NewExpression, IEnumerable<Expression>)

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。

ListInit(NewExpression, ElementInit[])

指定したListInitExpression オブジェクトを使用してコレクションを初期化するElementInitを作成します。

ListInit(NewExpression, Expression[])

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。

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

指定したListInitExpression オブジェクトを使用してコレクションを初期化するElementInitを作成します。

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 プロパティが NodeType と等しく、ListInitプロパティとNewExpressionプロパティが指定した値に設定されているInitializers。

例外

newExpression または initializers が null。

-又は-

initializersの 1 つ以上の要素がnull。

newExpression.型は IEnumerableを実装しません。

例

次の例では、 ListInit(NewExpression, ElementInit[]) メソッドを使用して、2 つのキーと値のペアを持つ新しいディクショナリ インスタンスの初期化を表す 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")

注釈

TypeのnewExpression プロパティは、IEnumerableを実装する型を表す必要があります。

結果のTypeのListInitExpressionプロパティは、newExpressionと等しくなります。型。

適用対象

ListInit(NewExpression, IEnumerable<Expression>)

ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。

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の 1 つ以上の要素がnull。

newExpression.型は IEnumerableを実装しません。

newExpressionで宣言された "Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドはありません。型またはその基本型。

-又は-

newExpressionの add メソッド。型またはその基本型は、引数を 1 つだけ受け取りません。

-又は-

Typeの最初の要素のinitializers プロパティで表される型は、newExpressionの add メソッドの引数型に割り当てできません。型またはその基本型。

-又は-

newExpressionには、"Add" (大文字と小文字を区別しない) という名前の複数の引数互換メソッドが存在します。型またはその基本型。

注釈

TypeのnewExpression プロパティは、IEnumerableを実装する型を表す必要があります。

この ListInit(NewExpression, IEnumerable<Expression>)のオーバーロードを使用するには、 newExpression。型またはその基本型では、引数を 1 つだけ受け取る "Add" (大文字と小文字を区別しない) という名前の 1 つのメソッドを宣言する必要があります。 引数の型は、Typeの最初の要素のinitializers プロパティによって表される型から割り当て可能である必要があります。

返されるInitializersのListInitExpression プロパティには、ElementInitの要素ごとにinitializers型の要素が 1 つ含まれています。 Argumentsの各要素のInitializers プロパティは、initializersの対応する要素を含むシングルトン コレクションです。 AddMethodの各要素のInitializers プロパティは、newExpressionで検出された add メソッドを表します。型またはその基本型。

結果のTypeのListInitExpressionプロパティは、newExpressionと等しくなります。型。

適用対象

ListInit(NewExpression, ElementInit[])

ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs

指定したListInitExpression オブジェクトを使用してコレクションを初期化するElementInitを作成します。

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 プロパティが NodeType と等しく、ListInitプロパティとNewExpressionプロパティが指定した値に設定されているInitializers。

例外

newExpression または initializers が null。

-又は-

initializersの 1 つ以上の要素がnull。

newExpression.型は IEnumerableを実装しません。

例

次の例では、 ListInit(NewExpression, ElementInit[]) メソッドを使用して、2 つのキーと値のペアを持つ新しいディクショナリ インスタンスの初期化を表す 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")

注釈

TypeのnewExpression プロパティは、IEnumerableを実装する型を表す必要があります。

結果のTypeのListInitExpressionプロパティは、newExpressionと等しくなります。型。

適用対象

ListInit(NewExpression, Expression[])

ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs
ソース:
ListInitExpression.cs

"Add" という名前のメソッドを使用してコレクションに要素を追加する ListInitExpression を作成します。

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の 1 つ以上の要素がnull。

newExpression.型は IEnumerableを実装しません。

newExpressionで宣言された "Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドはありません。型またはその基本型。

-又は-

newExpressionの add メソッド。型またはその基本型は、引数を 1 つだけ受け取りません。

-又は-

Typeの最初の要素のinitializers プロパティで表される型は、newExpressionの add メソッドの引数型に割り当てできません。型またはその基本型。

-又は-

newExpressionには、"Add" (大文字と小文字を区別しない) という名前の複数の引数互換メソッドが存在します。型またはその基本型。

注釈

TypeのnewExpression プロパティは、IEnumerableを実装する型を表す必要があります。

この ListInit(NewExpression, Expression[])のオーバーロードを使用するには、 newExpression。型またはその基本型では、引数を 1 つだけ受け取る "Add" (大文字と小文字を区別しない) という名前の 1 つのメソッドを宣言する必要があります。 引数の型は、Typeの最初の要素のinitializers プロパティによって表される型から割り当て可能である必要があります。

返されるInitializersのListInitExpression プロパティには、ElementInitの要素ごとにinitializers型の要素が 1 つ含まれています。 Argumentsの各要素のInitializers プロパティは、initializersの対応する要素を含むシングルトン コレクションです。 AddMethodの各要素のInitializers プロパティは、newExpressionで検出された add メソッドを表します。型またはその基本型。

結果の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

コレクションに要素を追加する "Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドを表す MethodInfo 。

initializers
IEnumerable<Expression>

IEnumerable<T> コレクションの設定に使用するExpression オブジェクトを含むInitializers。

返品

ListInitExpression プロパティが NodeType と等しく、ListInit プロパティが指定した値に設定されているNewExpression。

属性

例外

newExpression または initializers が null。

-又は-

initializersの 1 つ以上の要素がnull。

newExpression.型は IEnumerableを実装しません。

-又は-

addMethod は null ではなく、引数を 1 つだけ受け取る "Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドを表していません。

-又は-

addMethodはnullされず、Typeの 1 つ以上の要素のinitializers プロパティによって表される型は、addMethodが表すメソッドの引数型に割り当てできません。

addMethod は null であり、1 つの型と互換性のある引数を受け取る "Add" という名前のインスタンス メソッドが newExpressionに存在しません。型またはその基本型。

注釈

TypeのnewExpression プロパティは、IEnumerableを実装する型を表す必要があります。

addMethodがnullの場合は、newExpression。型またはその基本型では、引数を 1 つだけ受け取る "Add" (大文字と小文字を区別しない) という名前の 1 つのメソッドを宣言する必要があります。 addMethodがnullされていない場合は、パラメーターが 1 つだけ含まれる "Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドを表す必要があります。 Typeの各要素のinitializers プロパティで表される型は、add メソッドの引数型に割り当て可能である必要があります。

返されるInitializersのListInitExpression プロパティには、ElementInitの要素ごとにinitializers型の要素が 1 つ含まれています。 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

1 つの引数を受け取り、コレクションに要素を追加するインスタンス メソッドを表す MethodInfo 。

initializers
Expression[]

Expression コレクションの設定に使用するInitializers オブジェクトの配列。

返品

ListInitExpression プロパティが NodeType と等しく、ListInit プロパティが指定した値に設定されているNewExpression。

属性

例外

newExpression または initializers が null。

-又は-

initializersの 1 つ以上の要素がnull。

newExpression.型は IEnumerableを実装しません。

-又は-

addMethod は null ではなく、引数を 1 つだけ受け取る "Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドを表していません。

-又は-

addMethodはnullされず、Typeの 1 つ以上の要素のinitializers プロパティによって表される型は、addMethodが表すメソッドの引数型に割り当てできません。

addMethod は null であり、1 つの型と互換性のある引数を受け取る "Add" という名前のインスタンス メソッドが newExpressionに存在しません。型またはその基本型。

注釈

TypeのnewExpression プロパティは、IEnumerableを実装する型を表す必要があります。

addMethodがnullの場合は、newExpression。型またはその基本型では、引数を 1 つだけ受け取る "Add" (大文字と小文字を区別しない) という名前の 1 つのメソッドを宣言する必要があります。 addMethodがnullされていない場合は、パラメーターが 1 つだけ含まれる "Add" (大文字と小文字を区別しない) という名前のインスタンス メソッドを表す必要があります。 Typeの各要素のinitializers プロパティで表される型は、add メソッドの引数型に割り当て可能である必要があります。

返されるInitializersのListInitExpression プロパティには、ElementInitの要素ごとにinitializers型の要素が 1 つ含まれています。 Argumentsの各要素のInitializers プロパティは、initializersの対応する要素を含むシングルトン コレクションです。 AddMethodの各要素のInitializersプロパティは、addMethodと等しくなります。

結果のTypeのListInitExpressionプロパティは、newExpressionと等しくなります。型。

適用対象