你如何建立你的LINQ查询?
-
23-08-2019 - |
题
看来有两种方法构建查询 - 或者使用查询表达式:
IEnumerable<Customer> result =
from customer in customers
where customer.FirstName == "Donna"
select customer;
或使用扩展方法:
IEnumerable<Customer> result =
customers.Where(customer => customer.FirstName == "Donna");
你使用,为什么哪?你认为哪将是长期的更受欢迎?
解决方案
是在表达式语法可用只有操作的有限数,例如,取()或优先(),使用扩展方法才可用。
我个人比较喜欢表达,如果所有必要的操作都可以,如果不是的话,我倒回扩展方法,因为我觉得他们更容易比lambda表达式阅读。
在此答案看一看,
其他提示
我使用的方法的语法(几乎)排他地,因为查询的语法有更多的限制。为了可维护性原因,我发现优选的是使用该方法的语法向右走,而不是以后也许将其转换,或使用两种语法的混合。
这可能是一个有点难以在第一阅读,但一旦你习惯了它,它的工作原理相当自然的。
我只使用该方法的语法。这是因为我觉得快了很多写,我写一吨LINQ的。我也很喜欢它,因为它是更简洁。如果在一个团队中工作,所以最好来个concensus哪个是首选风格,混合两种风格是难以阅读。
Microsoft建议查询语法。 “一般来说,我们建议的查询语法,因为它通常是更简单,更具可读性”。 http://msdn.microsoft.com/en-us/library/bb397947。 ASPX
这要看您和您的团队找到更多的可读性,我会选择这种对个别情况。有一些疑问,在语法构成读好,有一些阅读方法的形式更好。当然,有一个广阔的中间地带,你不能说一种方式或其他,或者有些人更喜欢这种方式和其他的方式。
请记住,你可以两种形式混合在一起的地方可能会使其更易于阅读。
我认为没有理由怀疑任一种形式将在未来dissappear。
不隶属于 StackOverflow