假设我想使用
str.Split[' '].ElementAt(0) 10 times in my method.
我应该创建一个名为strSplit的字符串变量,还是继续使用str.Split [''] .ElementAt(0)?是否存在性能问题?
答案 0 :(得分:1)
使用整个返回的数组,而不是每次只使用第一个元素(除非你真的只想要第一个元素,而不是其他元素):
var result = str.Split(" ");
foreach (var splitValue in result)
{
// do something with splitValue
}
答案 1 :(得分:1)
记忆力很便宜。 真的便宜。
CPU周期也是如此。
您当前的方法将消耗更少的内存(每次调用Split
时没有GC,但您没有存储结果) tiny 。但它会消耗更多的CPU周期,特别是因为GC必须收集Split
创建的所有临时变量。实际上,它并不重要。你不会看到性能差异。
为了做好,请将其存储在变量中。使用的内存将是无关紧要的,您的代码将更清洁,更高效(即使您没有看到它!)