mirror of
https://github.com/ICDSystems/ICD.Common.Utils.git
synced 2026-02-15 12:45:01 +00:00
perf: String utils micro-optimizations
This commit is contained in:
@@ -47,8 +47,12 @@ namespace ICD.Common.Utils
|
|||||||
if (input == null)
|
if (input == null)
|
||||||
throw new ArgumentNullException("input");
|
throw new ArgumentNullException("input");
|
||||||
|
|
||||||
string[] strings = input.Select(c => ToHexLiteral(c)).ToArray();
|
StringBuilder builder = new StringBuilder();
|
||||||
return string.Join("", strings);
|
|
||||||
|
foreach (string literal in input.Select(c => ToHexLiteral(c)))
|
||||||
|
builder.Append(literal);
|
||||||
|
|
||||||
|
return builder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -80,7 +84,12 @@ namespace ICD.Common.Utils
|
|||||||
if (data == null)
|
if (data == null)
|
||||||
throw new ArgumentNullException("data");
|
throw new ArgumentNullException("data");
|
||||||
|
|
||||||
return string.Join("", data.Split(4).Select(s => FromHexLiteralCharacter(s).ToString()).ToArray());
|
StringBuilder builder = new StringBuilder();
|
||||||
|
|
||||||
|
foreach (char item in data.Split(4).Select(s => FromHexLiteralCharacter(s)))
|
||||||
|
builder.Append(item);
|
||||||
|
|
||||||
|
return builder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -112,8 +121,12 @@ namespace ICD.Common.Utils
|
|||||||
if (input == null)
|
if (input == null)
|
||||||
throw new ArgumentNullException("input");
|
throw new ArgumentNullException("input");
|
||||||
|
|
||||||
string[] strings = input.Select(c => ToMixedReadableHexLiteral(c)).ToArray();
|
StringBuilder builder = new StringBuilder();
|
||||||
return string.Join("", strings);
|
|
||||||
|
foreach (string item in input.Select(c => ToMixedReadableHexLiteral(c)))
|
||||||
|
builder.Append(item);
|
||||||
|
|
||||||
|
return builder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -424,7 +437,23 @@ namespace ICD.Common.Utils
|
|||||||
if (items == null)
|
if (items == null)
|
||||||
throw new ArgumentNullException("items");
|
throw new ArgumentNullException("items");
|
||||||
|
|
||||||
return string.Format("[{0}]", string.Join(", ", items.Select(i => ToString(i)).ToArray()));
|
StringBuilder builder = new StringBuilder();
|
||||||
|
builder.Append('[');
|
||||||
|
|
||||||
|
bool first = true;
|
||||||
|
|
||||||
|
foreach (T item in items)
|
||||||
|
{
|
||||||
|
if (!first)
|
||||||
|
builder.Append(", ");
|
||||||
|
first = false;
|
||||||
|
|
||||||
|
builder.Append(ToString(item));
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.Append(']');
|
||||||
|
|
||||||
|
return builder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user