fix(core): Optimizes strings / .NET 5 compatibility changes (#354)
- [X] Removes some string allocations (e.g. split) - [X] Optimizes some collections - [X] Converts insensitive to extension methods of built-ins. - [X] Adds ordinal (case sensitive) string helpers - [X] Fixes conditionals for in-game commands so they use Ordinal comparisons. - [X] Replaces ToLower.Contains with InsensitiveContains - [X] Adds ValueStringBuilder - [X] Implements ValueStringBuilder in a few places where it makes sense - [X] Removes the redundant Wrap function and replaces it with an optimized version - [X] Fixes list conversions in Utility Closes #351 Bumps release version
This commit is contained in:
parent
92aae8d482
commit
77ce2e1980
117 changed files with 2000 additions and 1226 deletions
|
|
@ -71,7 +71,7 @@ namespace Server.Commands.Generic
|
|||
|
||||
for (var i = 0; i < args.Length; ++i)
|
||||
{
|
||||
if (Insensitive.Equals(args[i], "where"))
|
||||
if (args[i].InsensitiveEquals("where"))
|
||||
{
|
||||
var origArgs = args;
|
||||
|
||||
|
|
@ -111,9 +111,7 @@ namespace Server.Commands.Generic
|
|||
}
|
||||
|
||||
var conditions = new List<ICondition[]>();
|
||||
var current = new List<ICondition>();
|
||||
|
||||
current.Add(TypeCondition.Default);
|
||||
var current = new List<ICondition> { TypeCondition.Default };
|
||||
|
||||
var index = 1;
|
||||
|
||||
|
|
@ -123,7 +121,7 @@ namespace Server.Commands.Generic
|
|||
|
||||
var inverse = false;
|
||||
|
||||
if (Insensitive.Equals(cur, "not") || cur == "!")
|
||||
if (cur.InsensitiveEquals("not") || cur == "!")
|
||||
{
|
||||
inverse = true;
|
||||
++index;
|
||||
|
|
@ -133,7 +131,7 @@ namespace Server.Commands.Generic
|
|||
throw new Exception("Improperly formatted object conditional.");
|
||||
}
|
||||
}
|
||||
else if (Insensitive.Equals(cur, "or") || cur == "||")
|
||||
else if (cur.InsensitiveEquals("or") || cur == "||")
|
||||
{
|
||||
if (current.Count > 1)
|
||||
{
|
||||
|
|
@ -199,7 +197,7 @@ namespace Server.Commands.Generic
|
|||
"contains" => new StringCondition(prop, inverse, StringOperator.Contains, val, false),
|
||||
"contains~" => new StringCondition(prop, inverse, StringOperator.Contains, val, true),
|
||||
"~contains" => new StringCondition(prop, inverse, StringOperator.Contains, val, true),
|
||||
_ => null
|
||||
_ => null
|
||||
};
|
||||
|
||||
if (condition == null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue