/// <summary>
        /// Parses a Redis string to a strongly-typed collection.
        /// </summary>
        /// <typeparam name="T">The type of the elements in the collection.</typeparam>
        /// <param name="value">The string value to parse.</param>
        /// <returns>The parsed strongly-typed collection.</returns>
        /// <exception cref="ArgumentException">Parameter <paramref name="value"/> cannot be parsed to a collection of <typeparamref name="T"/>.</exception>
        public static IEnumerable <T> ParseCollection <T>(string value)
        {
            if (string.IsNullOrEmpty(value))
            {
                return(Enumerable.Empty <T>());
            }

            return(value
                   .Split(RedisConverter.ArraySeparatorAsChar)
                   .Select(v => RedisConverter.ParseValue <T>(v)));
        }
 /// <summary>
 /// Parses a Redis string to an object.
 /// </summary>
 /// <typeparam name="T">The type of the object to parse.</typeparam>
 /// <param name="value">The string value to parse.</param>
 /// <returns>The parsed object.</returns>
 /// <exception cref="NotSupportedException">Type <typeparamref name="T" /> is not supported.</exception>
 public static T ParseValue <T>(string value)
 {
     return((T)RedisConverter.ParseValue(value, typeof(T)));
 }