答案 0 :(得分:32)
我是LINQ的忠实粉丝 - 虽然它需要保持透视,不要被视为银弹。
优点:
缺点:
OrderBy
等同于订购以外的其他运营商 - 例如查找具有属性最大值的项目我发现在处理进程内查询时最好。它们易于预测,理解和扩展。 LINQ to XML和Parallel LINQ等辅助技术非常棒。 LINQ to Objects几乎可以在任何地方使用。
LINQ to SQL等在它们合适的地方非常好,但它们更难理解并需要更多的专业知识。它们也仅适用于您代码的某些区域。
答案 1 :(得分:3)
我最喜欢的部分:使用它们来简化单元测试。 IEnumerable链也促使我在代码中编写更流畅的接口。
缺点:Lambdas和扩展方法是我的锤子,所有问题都是指甲。
总体而言:为我的C#编程注入了新的活力。
答案 2 :(得分:1)
他们存在一个问题,就是通过延迟执行从try catch块中偷走异常。
例如:
var l = new List<int>() {1, 2, 3};
try
{
l.Select(x => x / 0);
}
catch
{
// error
}
l.elementAt(0); // exception occurs here outside of the try catch
第一次遇到它时可能会很棘手,尤其是调试器会指向try-catch中的代码。
否则我发现它们非常有用且节省时间。
答案 3 :(得分:1)
我主要使用LINQ来处理对象的收集。 LINQ与对象集合完美配合,在大多数情况下不再需要谓词函数。
我之前尝试过使用LINQ to SQL,但发现它功能不足且笨拙。特别是我无法使用SQL Database类设计器。也许它确实在数据库上提供了intellisense,但是当你有SQL时谁需要它?
让我告诉你,了解更多有关LINQ的信息肯定是一个好主意,因为未来的应用程序应该只会增加。
答案 4 :(得分:0)
临:
缺点: