0

谁能通过提供一个非常基本的示例来解释我如何在 C# 中使用 (1) iQueryable (2) 表达式树?两者不相关,而不是提出两个单独的问题,我希望在一个问题中消除我的疑问。

进阶谢谢。

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 示例。

于 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 回答