動的な式を作成しています。これは、あるルール(lambda exp。)でリスト内のアイテムを注文します。これはコードです:動的に作成された式
Expression<Func<String, String>> exp = o => o;
MethodCallExpression orderByExp = Expression.Call(typeof(Enumerable), "OrderBy",
new Type[] { typeof(String), exp.Body.Type }, Expression.Parameter(typeof(IEnumerable<String>), "list"), exp);
は今、私はそれをソートするために、特定のデータに以前に作成した式を実行したいが、それが理由のようないくつかの奇妙な例外の「ラムダパラメータのない範囲で」失敗したか、「引数の式が有効ではありません"
var data = new String[] { "asdasdasd", "asdads", "123", "xcvxcvs", "ASDSD" };
// one of attempts: doesn't work
var result = data.AsQueryable().Provider.CreateQuery<String>(orderByExp);
誰か助けてもらえますか?
data.AsQueryable().OrderBy(exp);
は、あなたもここにIQueryable
を使用する必要があります:
画像全体が次にあります: 私はしたいです私は今持っていないいくつかのデータ(注文のようなルール、どこに他かもしれない)をいくつかのデータで食べました。しかし私はそのタイプを知っています。このクエリーは後でデータを持ついくつかのWebサービスに送信され、クエリーが実行されます。 – Kamarey
と忘れてしまった、これはオブジェクトへの単純なLINQです。 – Kamarey
さて、私は混乱しています - あなたがWebサービスにクエリを送信している場合、実際にLINQ to Objectsのようには聞こえません。何を注文したいのですか?Webサービス、またはローカルプロセスですか? –