【发布时间】:2010-05-14 17:28:41
【问题描述】:
有人建议我避免重复调用String.Length,因为每次调用它都会重新计算。我曾假设 String.Length 在 O(1) 时间内运行。 String.Length 比这更复杂吗?
【问题讨论】:
-
我相信您是在询问 .NET
System.String.Length属性,因为 C# 中没有这样的属性。 -
John Saunders:是的,我的意思是 System.String.Length。感谢您的修复。有什么特别的理由说全名 (System.String.Length) 而不仅仅是 String.Length?编辑:哦,我想你的意思是因为 System.String 是 .NET 的一部分,而不是 C# 语言。
-
访问 String.Length 比访问局部变量慢很多。如果你有一个紧密的循环,你要访问它数十亿次并且你想剃掉几秒钟,你才应该担心它。在我的机器上,string.Length 和局部变量之间的差异约为 1.4 纳秒。字符串是 50 个字符还是 5000 万个字符都没有区别。
标签: c# .net string complexity-theory big-o