| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Text; | 
|   | 
| namespace Jace.Util | 
| { | 
|     /// <summary> | 
|     /// Utility methods of Jace.NET that can be used throughout the engine. | 
|     /// </summary> | 
|     internal  static class EngineUtil | 
|     { | 
|         static internal IDictionary<string, double> ConvertVariableNamesToLowerCase(IDictionary<string, double> variables) | 
|         { | 
|             Dictionary<string, double> temp = new Dictionary<string, double>(); | 
|             foreach (KeyValuePair<string, double> 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(); | 
|         } | 
|     } | 
| } |