请教Lambda表达式num => num如何用ParameterExpression的方式表示?

jclass 2010-08-27 01:39:33
问题:此中的num=>num 如何用ParameterExpression方式表示呢?

如下例子:
List<decimal> decimals =
new List<decimal> { 6.2m, 8.3m, 0.5m, 1.3m, 6.3m, 9.7m };

IEnumerable<decimal> query =
decimals.AsQueryable()
.OrderByDescending(num => num, new SpecialComparer());

foreach (decimal num in query)
Console.WriteLine(num);

//如何通过Expression直接返回参数值? 效果等同于num=>num
ParameterExpression param = Expression.Parameter(typeof(decimal),"num");
var orderby = Expression.Lambda<Func<decimal>>(??, param);

var query =
decimals.AsQueryable()
.OrderByDescending(orderby, new SpecialComparer());
...全文
299 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jclass 2010-08-30
  • 打赏
  • 举报
回复
? 有人在吗? 怎么这个问题 很难??
jclass 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 q107770540 的回复:]
new List<decimal> { 6.2m, 8.3m, 0.5m, 1.3m, 6.3m, 9.7m };
===
你想得到什么样的值?
[/Quote]

得到的结果是: 传递 List数组的值 作为参数 然后返回这个值 ,这种方式最后作为排序OrderByDescending的条件
jclass 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
ParameterExpression number = Expression.Parameter(typeof(int), "number");
ParameterExpression[] parameters = new ParameterExpression[] { number };
BinaryExpression body = Expression.GreaterThan(numb……
[/Quote]

谢谢你的回复,但是我测试之后 发现这种方式存在问题。

首先 decimal类型的 我传入的一个decimal参数 直接要返回这个参数值 转换为整型那怎么行呢?
第二 你执行与0比较大小,那假如里面有负数 0 等等呢?
第三 如果是字符串传递或者是字节或者是其他类型等等作为参数传递 那又如何呢?

其实如果返回类型里面的属性倒是比较好处理的 可以配合反射搞出来,但是现在主要是系统类型我没法直接返回参数?

再请赐教...
wuyq11 2010-08-28
  • 打赏
  • 举报
回复
ParameterExpression number = Expression.Parameter(typeof(int), "number");
ParameterExpression[] parameters = new ParameterExpression[] { number };
BinaryExpression body = Expression.GreaterThan(number, zero);
Expression<Func<int>> predicate = Expression.Lambda<Func<int>>(body, parameters);
q107770540 2010-08-28
  • 打赏
  • 举报
回复
new List<decimal> { 6.2m, 8.3m, 0.5m, 1.3m, 6.3m, 9.7m };
===
你想得到什么样的值?
Peter200694013 2010-08-28
  • 打赏
  • 举报
回复
不懂ParameterExpression
帮顶下
jclass 2010-08-28
  • 打赏
  • 举报
回复
有人吗??请教。。
jclass 2010-08-27
  • 打赏
  • 举报
回复
请教。。

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧