1

我有BinaryTree<Student>DeserializedStudents 和 linq 查询:

var students = DeserializedStudents.OrderBy(testResult => testResult.Test_Result).
Select(cust => new { name = cust.Name, result = cust.Test_Result });

有人可以告诉我如何构建一个等于这个查询的表达式吗?

4

3 回答 3

2

使用复杂的表达式,您可以作弊并查看编译器的作用:

Expression<Func<IEnumerable<Student>, IEnumerable<Student>>> expression = 
  query => query
    .OrderBy(testResult => testResult.Test_Result)
    .Select(cust => new { name = cust.Name, result = cust.Test_Result });

只需expression在调试器中查看即可。

顺便说一句,LINQPad对此非常有帮助。

于 2013-01-08T11:20:47.387 回答
1

您可以使用IQueryable接口实现基于以下内容自动构建表达式LinQ

var query = DeserializedStudents.AsQueryable()
    .OrderBy(testResult => testResult.Test_Result)
    .Select(cust => new { name = cust.Name, result = cust.Test_Result });

var expression = query.Expression;
于 2013-01-08T11:21:30.140 回答
0

像这样?:

var students = from cust in DeserializedStudents
               orderby cust.Test_Result
               select new { name = cust.name, result = cust.Test_Result };
于 2013-01-08T11:16:20.467 回答