我有一个表达式和两种分割方式:
List<string> list =
collection.Select(
control => SearchForControl(
control, someOtherParameters)).Select(
customControl => customControl.InnerText).ToList();
List<string> list = collection.
Select(control => SearchForControl(control, someOtherParameters)).
Select(customControl => customControl.InnerText).ToList();
什么是更可读/更好? 在第二种情况下放置点的位置:在行的开头或结尾?
答案 0 :(得分:2)
我认为几乎每个人都会认为第二个更具可读性,因为它可以将查询操作(Select
,Where
等)巧妙地放在另一个之下。
对于点,我会将它们放在线的开头,如下所示:
var list = collection
.Select(control => SearchForControl(control, someOtherParameters))
.Select(customControl => customControl.InnerText)
.ToList();
原因是在不破坏语法的情况下,更容易从此表达式复制/粘贴行。
答案 1 :(得分:0)
这是一个样式问题,因此您会发现世界上有编码器的答案可能很多。
我更喜欢自己的第二种方法,但是在线的开头有点。
答案 2 :(得分:0)
为什么不呢?
List<string> list = collection.Select(control =>
SearchForControl(control, someOtherParameters).InnerText).ToList();
您不需要两个选择。
如果你确实需要像第二种情况那样换行,我会将这些点放在行的开头,这样你就可以看到该行是一个延续。
答案 3 :(得分:0)
对于linq,我觉得如果你排列这样的linq方法(在开头用点),它看起来最简单:
List<string> list =
collection
.Select(
control => SearchForControl(control, someOtherParameters))
.Select(
customControl => customControl.InnerText)
.ToList();
答案 4 :(得分:0)
刚愎自用:
List<string> list =
collection.
Select(control => SearchForControl(control, someOtherParameters)).
Select(customControl => customControl.InnerText).ToList();
答案 5 :(得分:0)
我更喜欢使用默认样式规则的ReSharper自动格式化。这一点源于在20名开发人员团队中开发大项目的经验。 :)