List<Expression>
各式の型 (式が返す型) が または のいずれかItem
である Linq 式のリストがありますItem[]
。
言及されたコレクションを入力パラメーターとして受け取り、項目の 1 つのリスト (または配列) を返す Linq 式を生成するコードを作成しようとしています ( Item[]
)。
抽象的な例を次に示します。
public static string[] GetStrings()
{
return new[]
{
"first",
"second",
"third"
};
}
public static string GetString()
{
return "single1";
}
private void SOExample()
{
var expressions = new List<Expression>
{
Expression.Call(GetType().GetMethod("GetString")),
Expression.Call(GetType().GetMethod("GetStrings")),
Expression.Call(GetType().GetMethod("GetString")),
Expression.Call(GetType().GetMethod("GetStrings"))
};
// some magic code here
var combined = SomeMagicHere(expressions);
}
private Expression SomeMagicHere(List<Expression> expressions)
{
foreach (var expression in expressions)
{
if (expression.Type.IsArray)
{
// Use array's elements
}
else
{
// Use expression
}
}
私が作ろうとしているのはItem
、提供されたリストから (私の例では文字列) のリストを返す 1 つの Expression を生成することです。