Skip to content

Commit f58bf76

Browse files
committed
Optimize GetParametersAsString
1 parent eb2ca39 commit f58bf76

File tree

2 files changed

+11
-17
lines changed

2 files changed

+11
-17
lines changed

sdk/src/Core/Amazon.Runtime/ParameterCollection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public List<KeyValuePair<string,string>> GetSortedParametersList()
7777
return GetParametersEnumerable().ToList();
7878
}
7979

80-
private IEnumerable<KeyValuePair<string, string>> GetParametersEnumerable()
80+
internal IEnumerable<KeyValuePair<string, string>> GetParametersEnumerable()
8181
{
8282
foreach (var kvp in this)
8383
{

sdk/src/Core/Amazon.Util/AWSSDKUtils.cs

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -302,26 +302,20 @@ public static byte[] GetRequestPayloadBytes(IRequest request, bool? usesQueryStr
302302
*/
303303
internal static string GetParametersAsString(ParameterCollection parameterCollection)
304304
{
305-
var sortedParameters = parameterCollection.GetSortedParametersList();
306-
307-
StringBuilder data = new StringBuilder(512);
308-
foreach (var kvp in sortedParameters)
305+
var parameterBuilder = new ValueStringBuilder(512);
306+
foreach (var kvp in parameterCollection.GetParametersEnumerable())
309307
{
310-
var key = kvp.Key;
311308
var value = kvp.Value;
312-
if (value != null)
313-
{
314-
data.Append(key);
315-
data.Append('=');
316-
data.Append(AWSSDKUtils.UrlEncode(value, false));
317-
data.Append('&');
318-
}
309+
if (value == null)
310+
continue;
311+
parameterBuilder.Append(kvp.Key);
312+
parameterBuilder.Append('=');
313+
parameterBuilder.Append(AWSSDKUtils.UrlEncode(value, false));
314+
parameterBuilder.Append('&');
319315
}
320-
string result = data.ToString();
321-
if (result.Length == 0)
322-
return string.Empty;
323316

324-
return result.Remove(result.Length - 1);
317+
var length = parameterBuilder.Length;
318+
return length == 0 ? string.Empty : parameterBuilder.ToString(0, length - 1);
325319
}
326320

327321
/// <summary>

0 commit comments

Comments
 (0)