</pre><pre name="code" class="csharp"> protected string ReplaceArgumentNamePlaceholder(string sentence, string argumentNamePlaceholder, ArgumentQueryParameter argumentQueryParameter)
{
if (null == argumentQueryParameter || null==argumentQueryParameter.Parameters)
{
return sentence;
}
string replaceResult = sentence.Replace(argumentNamePlaceholder,
string.Join(",", argumentQueryParameter.Parameters.Select(x => x.ParameterName)));
//return sentence.Replace(argumentNamePlaceholder, string.Join(",", argumentQueryParameter.Parameters.Select(x=>x.ParameterName)));
byte[] middleBytes=StringReplacer.Replace(Encoding.ASCII.GetBytes(sentence), Encoding.ASCII.GetBytes(argumentNamePlaceholder),
Encoding.ASCII.GetBytes(string.Join(",", argumentQueryParameter.Parameters.Select(x => x.ParameterName))));
//return SplitReplaceString(sentence,argumentNamePlaceholder, argumentQueryParameter);
string ByteReplaceResult= System.Text.Encoding.Default.GetString(middleBytes);
return replaceResult;
}
protected string SplitReplaceString(string sentence,string oldString, ArgumentQueryParameter replaceString)
{
string result="";
string[] resultString = System.Text.RegularExpressions.Regex.Split(sentence,oldString);
IEnumerable middleEnumerable = resultString.Where((x,index)=>index!=resultString.Length-1).Select(x => x = x + string.Join(",", replaceString.Parameters.Select(y => y.ParameterName)));
foreach (string index in middleEnumerable)
{
result += index;
}
result += resultString[resultString.Length - 1];
return result;
}
split替换replace提高多字符串替换速度
最新推荐文章于 2024-01-01 15:04:29 发布