String.Split方法确保结果数组中的顺序吗?

时间:2011-12-29 06:19:33

标签: c# .net string split

流利的谷歌搜索没有给出答案,所以问题是:

String.Split方法是否确保根据它们在初始字符串中的位置确定所得子串的顺序?

感谢。

2 个答案:

答案 0 :(得分:8)

根据string.Split内部private string[] InternalSplitKeepEmptyEntries( int[] sepList, int[] lengthList, int numReplaces, int count) { int num = 0; int num2 = 0; count--; int num3 = (numReplaces < count) ? numReplaces : count; string[] array = new string[num3 + 1]; int num4 = 0; while (num4 < num3 && num < this.Length) { array[num2++] = this.Substring(num, sepList[num4] - num); num = sepList[num4] + ((lengthList == null) ? 1 : lengthList[num4]); num4++; } if (num < this.Length && num3 >= 0) { array[num2] = this.Substring(num); } else { if (num2 == num3) { array[num2] = string.Empty; } } return array; } 显示的内容,答案为

array

所有元素(例如{{1}}变量)始终按升序处理,不会进行排序。

ILSpy还列出的示例的结果与原始字符串中的顺序相同。

正如MSDN documentation for string.Split所指出的那样,这只是当前的实现,可能会发生变化。

答案 1 :(得分:1)

是的。否则它将毫无用处。