【发布时间】:2016-08-26 17:32:18
【问题描述】:
我喜欢 linq/lambda 语句的外观,想知道它的性能
var temp = list1.ForEach(x => list2.ForEach(y => Tuple.Create(y[1]+" "+y[2]+" "+x[0]+" "+x[1]) );
与此相比:
foreach(var x in list1)
foreach(var y in list2)
var temp = Tuple.Create(y[1]+" "+y[2]+" "+x[0]+" "+x[1]);
仍然不熟悉人们如何用 O(nlogn) 来描述性能,但从与此类聊天的持续互动中,我了解到双循环通常给出 O(n^2)
【问题讨论】:
-
两个不同的代码集执行相同吗?
-
两者都有两个嵌套的 for 循环。两者都相同(在性能方面)
-
这段代码中没有 LINQ。
-
您如何得出结论,您的任何方法都可能是
O(n log n)?或者这只是一个例子? -
@Servy 好的。我仍然不熟悉这些术语。比如第一个代码叫什么?我也知道有什么查询与方法术语,以及语句与表达式。
标签: c# performance linq for-loop lambda