0

非常に基本的な例を提供して、C#で(1)iQueryable(2)式ツリーを使用する方法を誰かに説明してもらえますか?両方は相関していません。2つの別々の質問をする代わりに、1つの質問で疑問を解消したいと思います。

高度な感謝。

4

3 に答える 3

3

式ツリーの作成は非常に簡単です。

Expression<Func<int,int,int>> addExp = (a,b) => a + b;

また

var paramA = Expression.Parameter(typeof(int), "a");
var paramB = Expression.Parameter(typeof(int), "b");
Expression<Func<int,int,int>> addExp = Expression.Lambda<Func<int,int,int>>(
    Expression.Add(paramA, paramB),
    paramA,
    paramB);

IQueryable プロバイダーの構築はかなり困難です。ただし、Matt Warren は、IQueryable プロバイダーの作成について説明する非常に詳細なシリーズを提供しています。

于 2009-10-15T19:15:04.637 に答える
2

私は通常、単にリンクするのは好きではありませんが、これはより複雑なトピックです。このビデオを見ることをお勧めします:

http://channel9.msdn.com/shows/Going+Deep/Erik-Meijer-and-Bart-De-Smet-LINQ-to-Anything/

Erik はこれをうまく説明し、Linq to Simpsons の例を示しています。

于 2009-10-15T19:12:40.943 に答える
0
Expression<Func<T, string, PropertyInfo>> expression = (obj, str) => 
    obj.GetType()
       .GetProperty(
           obj.GetType()
              .GetProperties()
              .ToList()
              .Find(prop =>
                    prop.Equals(str, StringComparison.OrdinalIgnoreCase).Name.ToString());
var obj = expression.Compile()(rowsData.FirstOrDefault(), sortIndex);
于 2012-01-27T06:12:51.720 に答える