我是一个长字符串数组,我想将它传递给250字符块中的另一个函数,我写了这段代码:
var cStart = 0;
var phase = 250;
var cEnd = cStart + phase;
var count = 0;
while (count < 10000)
{
string fileInStringTemp = "";
fileInStringTemp = fileInString.Substring(cStart, cEnd);
var lngth = fileInStringTemp.Length;
//Do Some Work
cStart += phase;
cEnd += phase;
count++;
}
Run Code Online (Sandbox Code Playgroud)
在循环的值的第一次迭代lngth就是250这是很好的,在未来的迭代我也希望它250,因为我是从250-500字符提取子,但令人吃惊的值lngth在第二次迭代变量获得500.
这是为什么?我也试图在循环中每次初始化字符串变量,所以它从零开始但没有增益.
Substring的第二个参数是您想要的长度,而不是停止索引.
public string Substring(
int startIndex,
int length
)
Run Code Online (Sandbox Code Playgroud)
因此,您需要做的就是更改代码以获得起始索引和长度(phase)
fileInString.Substring(cStart, phase)
Run Code Online (Sandbox Code Playgroud)
以下是有关如何使用Substring的MSDN链接:
https://msdn.microsoft.com/en-us/library/aka44szs(v=vs.110).aspx
根据MSDN,Substring方法中的第一个参数是StartIndex,它定义为子字符串从零开始的字符位置,第二个参数用于定义子字符串的长度,子字符串定义为子字符串中的字符数.
所以你应该试试这个:
var cStart = 0;
var phase = 250;
var count = 0;
while (count < 10000)
{
string fileInStringTemp = "";
fileInStringTemp = fileInString.Substring(cStart, phase);
var lngth = fileInStringTemp.Length;
//Do Some Work
count++;
cStart = phase * count + 1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |