[英]C# extract data from start of StringBuilder
I want to extract some chars from start of StringBuilder variable. 我想从StringBuilder变量的开头提取一些字符。
I wrote bellow code : 我写下了以下代码:
private string getPart(StringBuilder data, int len)
{
string s = data.ToString(0, len);
data.Remove(0, len);
return s;
}
Any suggestion fro better coding? 有什么建议可以更好地编码?
If you want character extraction in many parts of your code, you can try implementing the algorithm as an extension method : 如果要在代码的许多部分中提取字符,可以尝试将算法实现为扩展方法 :
public static class StringBuilderExtensions {
public static String Extract(this StringBuilder source, int length) {
if (Object.ReferenceEquals(null, source))
throw new ArgumentNullException("source");
else if ((length < 0) || (length > source.Length))
throw new ArgumentOutOfRangeException("length");
// Your actual algorithm
String result = source.ToString(0, length);
source.Remove(0, length);
return result;
}
}
...
StringBuilder data = ...
String s = data.Extract(len); // <- Just extract
You can use CopyTo
method: 您可以使用
CopyTo
方法:
private string getPart(StringBuilder data, int len)
{
var output = new char[len];
data.CopyTo(0, output, 0, len);
data.Remove(0, len);
return new string(output);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.