我认为有一个linq预处理器可以将你的linq表达式预处理为常规的c#语句,如.Select().Group()等,这对于学习幕后的内容很有用。 linq,学习linq或调试复杂的linq表达式。这样的工具或设施是否存在?我无法在LinqPad中找到它。Linq预处理器?
0
A
回答
3
要在LINQPad中使用此功能,请运行查询,然后单击结果窗口上的lambda按钮。请注意,这仅适用于基于IQueryable的查询。这意味着,对于本地查询,则必须调用.AsQueryable():
from n in new[] { "Tom", "Dick", "Harry" }.AsQueryable()
where n.Contains ("a")
select n
从查询表达式到精通语法翻译是有多个发电机查询特别有意思,加入或let语句。例如:
var fullNames = new[] { "Anne Williams", "John Fred Smith", "Sue Green" }.AsQueryable();
IEnumerable<string> query =
from fullName in fullNames
from name in fullName.Split()
orderby fullName, name
select name + " came from " + fullName;
query.Dump();
这相当于:
System.String[]
.SelectMany (
fullName => fullName.Split (new Char[0]),
(fullName, name) =>
new
{
fullName = fullName,
name = name
}
)
.OrderBy (temp0 => temp0.fullName)
.ThenBy (temp0 => temp0.name)
.Select (temp0 => ((temp0.name + " came from ") + temp0.fullName))
1
Resharper可以将LINQ表达式转换为方法链。
1
您也可以尝试通过Reflector运行Linq表达式(具体请参见投诉2)。
相关问题
- 1. YAML预处理器/宏处理器
- 2. HTML预处理器?
- 3. 预处理器宏
- 4. C++预处理器
- 5. GCC预处理器
- 6. Xcode中的预处理器忽略目标预处理器宏
- 7. 预处理器,后处理器,几何处理器和NC处理器
- 8. Windows Mobile 6.5.3预处理器
- 9. 地区/ EndRegion预处理器
- 10. C预处理器概念
- 11. 获取预处理器宏
- 12. CodePen CSS预处理器
- 13. C++预处理器__typeof
- 14. 关于CSS预处理器
- 15. 预处理器时间戳
- 16. Gfortran预处理器指令
- 17. Testrun预处理器语句
- 18. C++预处理器变量
- 19. C预处理器警卫?
- 20. C++ #define预处理器
- 21. 升压预处理器库
- 22. Interface Builder和预处理器
- 23. Xcode中的预处理器
- 24. 舍入C预处理器
- 25. C#预处理器指令
- 26. Xcode预处理器输出
- 27. 预处理器基于C
- 28. VB.NET预处理器指令
- 29. Java的预处理器
- 30. 更改预处理器值