protected void SetStringValue <T>(string key, T value)
        {
            foreach (StringValueParameter valueField in stringValues)
            {
                if (valueField.key == key)
                {
                    valueField.value = value.ToString();
                    return;
                }
            }

            stringValues.Add(StringValueParameter.Create(key, value));
        }
        protected void SetStringArrayValue <T>(string key, T[] valueArray)
        {
            int i = 0;

            while (i < stringValues.Count)
            {
                if (stringValues[i].key.Equals(key))
                {
                    stringValues.RemoveAt(i);
                }
                else
                {
                    ++i;
                }
            }

            foreach (T value in valueArray)
            {
                stringValues.Add(StringValueParameter.Create(key, value.ToString()));
            }
        }