using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Jace.Util { /// /// Utility methods of Jace.NET that can be used throughout the engine. /// internal static class EngineUtil { static internal IDictionary ConvertVariableNamesToLowerCase(IDictionary variables) { Dictionary temp = new Dictionary(); foreach (KeyValuePair keyValuePair in variables) { temp.Add(keyValuePair.Key.ToLowerFast(), keyValuePair.Value); } return temp; } // This is a fast ToLower for strings that are in ASCII static internal string ToLowerFast(this string text) { StringBuilder buffer = new StringBuilder(text.Length); for(int i = 0; i < text.Length; i++) { char c = text[i]; if (c >= 'A' && c <= 'Z') { buffer.Append((char)(c + 32)); } else { buffer.Append(c); } } return buffer.ToString(); } } }