使用LINQ手动查找的好处优于连接的好处是什么?

10

在LINQ中,使用手动查找(ILookup<T>)方法和使用JoinGroupJoin联接本地的IEnumerable<T>序列相比,哪种方法更快?

我读过有关资料称编译器实际上会将JoinGroupJoin的内部序列转换为ILookup<T>

单独使用ILookup<T>的优点是什么?


2
虽然这个问题很有趣,但对我来说似乎过早优化了。如果你正在编写的代码对性能至关重要,那么你应该监控它。如果它足够快,那就继续下一个任务。 - Steven
一些示例代码可以使您的问题更清晰。 - Ian Ringrose
@Ian - 我稍后会添加一些代码来说明我的意思。 - TheBoyan
为了分析LINQ,我经常使用SQL Server分析器来分析LINQ-to-SQL调用。我会找出LINQ代码的查询时间和查询翻译。如果有帮助的话。 - Philippe Lavoie
2
@Philipe - 这里不是关于LINQ to SQL的主题,我知道IQueriable<T>被解释为表达式树,并在运行时转换为SQL。主题是IEnumerable<T>,即本地集合上的连接以及它们是否真正利用了ILookup。 - TheBoyan
显示剩余2条评论
1个回答

5

这要看情况而定。如果您正在使用基于DataContext的对象,那么join操作通过select语句被完全转换为SQL服务器。如果是POCO(或更具体地说是Plain Old CLR集合)或其他类型,则会使用ILookup。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接