我有BinaryTree<Student>
DeserializedStudents 和 linq 查询:
var students = DeserializedStudents.OrderBy(testResult => testResult.Test_Result).
Select(cust => new { name = cust.Name, result = cust.Test_Result });
有人可以告诉我如何构建一个等于这个查询的表达式吗?
我有BinaryTree<Student>
DeserializedStudents 和 linq 查询:
var students = DeserializedStudents.OrderBy(testResult => testResult.Test_Result).
Select(cust => new { name = cust.Name, result = cust.Test_Result });
有人可以告诉我如何构建一个等于这个查询的表达式吗?
使用复杂的表达式,您可以作弊并查看编译器的作用:
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对此非常有帮助。
您可以使用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;
像这样?:
var students = from cust in DeserializedStudents
orderby cust.Test_Result
select new { name = cust.name, result = cust.Test_Result };