2つのオブジェクトを文字列連結するための式ツリーを作成する

マティアスバーガー

私はExpression、IronPythonでそれらを使用するためのそれらの式ツリーについて学習しているだけです(しかし、それは今のところ無関係です)。

私がやろうとしているのは、次のラムダのような式ツリーを作成することです。

Func<T, int, string> func = (s,t) => s + t;

私の現在の機能はこれです:

public static Expression<Func<T, int, string>> StringConcatSelector<T>()
{
    var parameterParam = Expression.Parameter(typeof(T), "x");
    var paramToString = typeof(T).GetMethods().FirstOrDefault(s=>s.Name=="ToString");
    var parameter = Expression.Call(parameterParam, paramToString);


    var intParameterParam = Expression.Parameter(typeof(int), "s");
    var intParameterToString = typeof(int).GetMethods().FirstOrDefault(s => s.Name == "ToString");
    var intParameter = Expression.Call(intParameterParam, intParameterToString);

    var stringConcat = typeof(string).GetMethods().FirstOrDefault(s => s.Name == "Concat");

    var result = Expression.Call(stringConcat, parameter, intParameter);

    return Expression.Lambda<Func<T, int, string>>
                         (result, parameterParam, intParameterParam);
}

Expression.Callのは、String.Concat無効なため、パラメータカウントで、このように動作しません。だから私は次のようなものが必要だと思います:

  • List<string>-変数式を作成します
  • 両方の値をリストに追加します
  • String.Concatlist-expressionとともに使用します。

私は正しいですか?

はいの場合、リスト変数(または配列)を作成するにはどうすればよいString.Concatですか?両方の値を追加して、それをパラメーターとして使用しますか?

Ivan Stoev

String.Concat メソッドには11(!)のオーバーロードがあり、ランダムなオーバーロードを取得しています。

あなたのケースに最も適しているのは

public static String Concat(String str0, String str1)

次のType.GetMethodオーバーロードを使用して取得できます

public MethodInfo GetMethod(string name, Type[] types)

ここで、types配列はメソッド引数のタイプを表します。

var stringConcat = typeof(string).GetMethod("Concat",
    new[] { typeof(string), typeof(string) });

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

オブジェクトのリストタイプを作成するために2つの文字列タイプリストを結合する方法

分類Dev

文字列とオブジェクトの連結を禁止する

分類Dev

2つのJSONオブジェクトを連結する

分類Dev

JSONで2つのオブジェクトキーを連結する

分類Dev

文字列のコレクションから結合されたオブジェクトのコレクションを作成するためのLINQクエリ

分類Dev

新しいオブジェクトを作成するために2つの配列でForEachを使用する

分類Dev

Thymeachでth:eachのオブジェクトの文字列を連結する

分類Dev

配列からオブジェクトのツリーを作成する

分類Dev

PHP匿名オブジェクトの文字列を連結する奇妙な動作

分類Dev

オブジェクトの配列からオブジェクトを見つけるためのクエリを作成する

分類Dev

2つのオブジェクトを辞書の値に連結する

分類Dev

文字列オブジェクトを作成するための最良のアプローチ

分類Dev

JavaScriptで配列プロパティを持つ2つのオブジェクトを連結する方法は?

分類Dev

文字列オブジェクトのリストを連結する最良の方法?

分類Dev

Asp.Netで2つのJsonオブジェクトを連結する方法

分類Dev

2つのJavaScriptオブジェクトをJavaScriptと連結する方法

分類Dev

文字列からオブジェクトを作成するための正しいOOPアプローチ

分類Dev

「rlm」の文字列から式オブジェクトを作成する方法

分類Dev

クエリを作成するために文字列の連結を避けます

分類Dev

配列を分割せずに2つのオブジェクトを連結する

分類Dev

2つのmysqlテーブルを結合して1つのオブジェクトを作成するためのスクリプトをscalaで記述します(クイル)

分類Dev

オブジェクトの2つの配列をマージし、自己プロパティを保持するためのオブジェクト割り当て

分類Dev

オブジェクトをリストに追加するためのLamda式

分類Dev

オブジェクトの2つの配列をマージし、値を連結するにはどうすればよいですか?

分類Dev

文字列またはjsonオブジェクトを渡すモデルオブジェクトに関する情報を取得するためのルートを1つだけ作成できますか?

分類Dev

Google Chartsで使用するために、オブジェクトの2つの配列を1つの配列に結合します

分類Dev

2つのjsonオブジェクトを連結します

分類Dev

2つのBstr文字列を連結するためのC ++コード

分類Dev

オブジェクトのリストを作成するための正しいループ構造の作成

Related 関連記事

  1. 1

    オブジェクトのリストタイプを作成するために2つの文字列タイプリストを結合する方法

  2. 2

    文字列とオブジェクトの連結を禁止する

  3. 3

    2つのJSONオブジェクトを連結する

  4. 4

    JSONで2つのオブジェクトキーを連結する

  5. 5

    文字列のコレクションから結合されたオブジェクトのコレクションを作成するためのLINQクエリ

  6. 6

    新しいオブジェクトを作成するために2つの配列でForEachを使用する

  7. 7

    Thymeachでth:eachのオブジェクトの文字列を連結する

  8. 8

    配列からオブジェクトのツリーを作成する

  9. 9

    PHP匿名オブジェクトの文字列を連結する奇妙な動作

  10. 10

    オブジェクトの配列からオブジェクトを見つけるためのクエリを作成する

  11. 11

    2つのオブジェクトを辞書の値に連結する

  12. 12

    文字列オブジェクトを作成するための最良のアプローチ

  13. 13

    JavaScriptで配列プロパティを持つ2つのオブジェクトを連結する方法は?

  14. 14

    文字列オブジェクトのリストを連結する最良の方法?

  15. 15

    Asp.Netで2つのJsonオブジェクトを連結する方法

  16. 16

    2つのJavaScriptオブジェクトをJavaScriptと連結する方法

  17. 17

    文字列からオブジェクトを作成するための正しいOOPアプローチ

  18. 18

    「rlm」の文字列から式オブジェクトを作成する方法

  19. 19

    クエリを作成するために文字列の連結を避けます

  20. 20

    配列を分割せずに2つのオブジェクトを連結する

  21. 21

    2つのmysqlテーブルを結合して1つのオブジェクトを作成するためのスクリプトをscalaで記述します(クイル)

  22. 22

    オブジェクトの2つの配列をマージし、自己プロパティを保持するためのオブジェクト割り当て

  23. 23

    オブジェクトをリストに追加するためのLamda式

  24. 24

    オブジェクトの2つの配列をマージし、値を連結するにはどうすればよいですか?

  25. 25

    文字列またはjsonオブジェクトを渡すモデルオブジェクトに関する情報を取得するためのルートを1つだけ作成できますか?

  26. 26

    Google Chartsで使用するために、オブジェクトの2つの配列を1つの配列に結合します

  27. 27

    2つのjsonオブジェクトを連結します

  28. 28

    2つのBstr文字列を連結するためのC ++コード

  29. 29

    オブジェクトのリストを作成するための正しいループ構造の作成

ホットタグ

アーカイブ