Joe Duffy 的博客暗示 usingstring.Substring
比string.Split
.
我不知道它是否说该Substring
方法没有分配新字符串,或者它是否更有效,因为它不会进行任何不需要的分配。您能否解释一下它如何更有效并举一个例子。
我将他的第一个示例理解为创建一个数组,然后处理数组中的每个字符串。
string str = ...;
string[] substrs = str.Split(',');
foreach (string subtr in substrs) {
Process(substr);
}
以下如何更有效
string str = ...;
int lastIndex = 0;
int commaIndex;
while ((commaIndex = str.IndexOf(',', commaIndex)) != -1) {
Process(substr, lastIndex, commaIndex);
lastIndex = commaIndex + 1;
我看到的是 String.IndexOf
用来查找逗号的索引然后处理字符串。我假设他打算String.Substring
在处理过程中用来提取数据。下面的评论之一表明他可能会一个字一个字地拉它。他会一直拉字符,直到他击中下一个逗号,可能会建立一个字符数组?