M*****e 发帖数: 568 | 1 初学C#的时候,习惯把for都改成foreach。
现在开始意识到,其实foreach都可以用lambda+linq解决。
在OOP中消灭loop,转用query是一种思维模式的改变。 |
a***x 发帖数: 26368 | 2 underneath, 屁都没变。
【在 M*****e 的大作中提到】 : 初学C#的时候,习惯把for都改成foreach。 : 现在开始意识到,其实foreach都可以用lambda+linq解决。 : 在OOP中消灭loop,转用query是一种思维模式的改变。
|
M*****e 发帖数: 568 | 3
underneath it's only 0s and 1s.
c# is all about syntax.
If you think syntax is nothing, no one force you to use c#.
【在 a***x 的大作中提到】 : underneath, 屁都没变。
|
a***x 发帖数: 26368 | 4 要觉得巴哥for换成lamda就是最高境界了,那俺确实觉得是nothing.
【在 M*****e 的大作中提到】 : : underneath it's only 0s and 1s. : c# is all about syntax. : If you think syntax is nothing, no one force you to use c#.
|
M*****e 发帖数: 568 | 5
更,更
我说的很严谨的。哈哈
另外在OOP中避免for是一件很profound的事情,不要小看了。
【在 a***x 的大作中提到】 : 要觉得巴哥for换成lamda就是最高境界了,那俺确实觉得是nothing.
|
l*y 发帖数: 21010 | 6 心理作用,不过coding的时候心理作用也是很重要的,可以影响整体代码风格
【在 M*****e 的大作中提到】 : : 更,更 : 我说的很严谨的。哈哈 : 另外在OOP中避免for是一件很profound的事情,不要小看了。
|
s***o 发帖数: 2191 | 7 foreach is not as efficient as for loop in many cases, although the
difference can usually be ignored.
【在 M*****e 的大作中提到】 : : 更,更 : 我说的很严谨的。哈哈 : 另外在OOP中避免for是一件很profound的事情,不要小看了。
|
u**d 发帖数: 211 | 8 我觉得这种 syntax 的设计目的
在于把 data operation 和 code 区分开来
linq 的一个目的就是使得 application program 和 db
更容易的整合起来
两个 lists 做 intersection,也许 list 指向的是 db 里的 table
也许都在 memory 里,也许一个在 memory 一个在 db 里,
在 linq 的 syntax 下,都是一致的
至于需不需要用 sql 等等,用户都不用操心
要说 underneath,但是同样的operator,底层实现完全可以不同
性能也会不同
比如 aggregation,在 multi-core 下,就可以平行 aggregate
自己真要实现起来,还是很 tedious
不过 c# 好像没这么智能
而且,如果操作的 array/list 也就 千八百个 elements
各个实现也都差不了多少
【在 a***x 的大作中提到】 : underneath, 屁都没变。
|
a***x 发帖数: 26368 | 9 区分开来你就要开始担心麦大叔帮你做的东西的效率了。hohoho
还是自己写安心。
【在 u**d 的大作中提到】 : 我觉得这种 syntax 的设计目的 : 在于把 data operation 和 code 区分开来 : linq 的一个目的就是使得 application program 和 db : 更容易的整合起来 : 两个 lists 做 intersection,也许 list 指向的是 db 里的 table : 也许都在 memory 里,也许一个在 memory 一个在 db 里, : 在 linq 的 syntax 下,都是一致的 : 至于需不需要用 sql 等等,用户都不用操心 : 要说 underneath,但是同样的operator,底层实现完全可以不同 : 性能也会不同
|
b******g 发帖数: 81 | 10 记得孔乙己的“回字的四种写法”吗?
Lambda + Linq 不过是.NET编程的一种写法,没必要这么自我感觉良好吧。 |
|
|
S***k 发帖数: 370 | 11 算法,数据结构,逻辑是programming的根本。其他地,额觉着都是浮云。 |
b********2 发帖数: 855 | |
e**********t 发帖数: 87 | 13 linq is much slower than foreach.
【在 M*****e 的大作中提到】 : 初学C#的时候,习惯把for都改成foreach。 : 现在开始意识到,其实foreach都可以用lambda+linq解决。 : 在OOP中消灭loop,转用query是一种思维模式的改变。
|
c**d 发帖数: 579 | 14
读一下IL code再下定论
【在 e**********t 的大作中提到】 : linq is much slower than foreach.
|
n*w 发帖数: 3393 | 15 LING是什么?
【在 b********2 的大作中提到】 : 去GOOGLE下LING吧,评价很差的
|
m*********2 发帖数: 701 | 16 这容易。
LINQ就是为了provide another layer of abstract.
多了这一层, 下面的Database可以变而application code不用改
【在 u**d 的大作中提到】 : 我觉得这种 syntax 的设计目的 : 在于把 data operation 和 code 区分开来 : linq 的一个目的就是使得 application program 和 db : 更容易的整合起来 : 两个 lists 做 intersection,也许 list 指向的是 db 里的 table : 也许都在 memory 里,也许一个在 memory 一个在 db 里, : 在 linq 的 syntax 下,都是一致的 : 至于需不需要用 sql 等等,用户都不用操心 : 要说 underneath,但是同样的operator,底层实现完全可以不同 : 性能也会不同
|
X*O 发帖数: 35 | 17 foreach只能用于那些实现了IEnumerable的class, 每次循环都是去调用那些
Enumerator的函数以确定循环到哪个地方了.所以效率是比较低的. for loop是如果直
接使用数组,效率会好一点. 如果for loop只用于实现了IList的那些class,效果也好不
到那里去. 因为每一次this[int index]的调用,就是在调用get/set函数.
程序易读性比简洁的更重要. 个人感觉Linq发展前途不大. |
M*****e 发帖数: 568 | 18 初学C#的时候,习惯把for都改成foreach。
现在开始意识到,其实foreach都可以用lambda+linq解决。
在OOP中消灭loop,转用query是一种思维模式的改变。 |
a***x 发帖数: 26368 | 19 underneath, 屁都没变。
【在 M*****e 的大作中提到】 : 初学C#的时候,习惯把for都改成foreach。 : 现在开始意识到,其实foreach都可以用lambda+linq解决。 : 在OOP中消灭loop,转用query是一种思维模式的改变。
|
M*****e 发帖数: 568 | 20
underneath it's only 0s and 1s.
c# is all about syntax.
If you think syntax is nothing, no one force you to use c#.
【在 a***x 的大作中提到】 : underneath, 屁都没变。
|
|
|
a***x 发帖数: 26368 | 21 要觉得巴哥for换成lamda就是最高境界了,那俺确实觉得是nothing.
【在 M*****e 的大作中提到】 : : underneath it's only 0s and 1s. : c# is all about syntax. : If you think syntax is nothing, no one force you to use c#.
|
M*****e 发帖数: 568 | 22
更,更
我说的很严谨的。哈哈
另外在OOP中避免for是一件很profound的事情,不要小看了。
【在 a***x 的大作中提到】 : 要觉得巴哥for换成lamda就是最高境界了,那俺确实觉得是nothing.
|
l*y 发帖数: 21010 | 23 心理作用,不过coding的时候心理作用也是很重要的,可以影响整体代码风格
【在 M*****e 的大作中提到】 : : 更,更 : 我说的很严谨的。哈哈 : 另外在OOP中避免for是一件很profound的事情,不要小看了。
|
s***o 发帖数: 2191 | 24 foreach is not as efficient as for loop in many cases, although the
difference can usually be ignored.
【在 M*****e 的大作中提到】 : : 更,更 : 我说的很严谨的。哈哈 : 另外在OOP中避免for是一件很profound的事情,不要小看了。
|
u**d 发帖数: 211 | 25 我觉得这种 syntax 的设计目的
在于把 data operation 和 code 区分开来
linq 的一个目的就是使得 application program 和 db
更容易的整合起来
两个 lists 做 intersection,也许 list 指向的是 db 里的 table
也许都在 memory 里,也许一个在 memory 一个在 db 里,
在 linq 的 syntax 下,都是一致的
至于需不需要用 sql 等等,用户都不用操心
要说 underneath,但是同样的operator,底层实现完全可以不同
性能也会不同
比如 aggregation,在 multi-core 下,就可以平行 aggregate
自己真要实现起来,还是很 tedious
不过 c# 好像没这么智能
而且,如果操作的 array/list 也就 千八百个 elements
各个实现也都差不了多少
【在 a***x 的大作中提到】 : underneath, 屁都没变。
|
a***x 发帖数: 26368 | 26 区分开来你就要开始担心麦大叔帮你做的东西的效率了。hohoho
还是自己写安心。
【在 u**d 的大作中提到】 : 我觉得这种 syntax 的设计目的 : 在于把 data operation 和 code 区分开来 : linq 的一个目的就是使得 application program 和 db : 更容易的整合起来 : 两个 lists 做 intersection,也许 list 指向的是 db 里的 table : 也许都在 memory 里,也许一个在 memory 一个在 db 里, : 在 linq 的 syntax 下,都是一致的 : 至于需不需要用 sql 等等,用户都不用操心 : 要说 underneath,但是同样的operator,底层实现完全可以不同 : 性能也会不同
|
b******g 发帖数: 81 | 27 记得孔乙己的“回字的四种写法”吗?
Lambda + Linq 不过是.NET编程的一种写法,没必要这么自我感觉良好吧。 |
S***k 发帖数: 370 | 28 算法,数据结构,逻辑是programming的根本。其他地,额觉着都是浮云。 |
b********2 发帖数: 855 | |
k*******d 发帖数: 701 | 30 just the difference of functional programming and oo programming |