/// <summary>
        /// Compares this instance to the <paramref name="comparand"/> using the specified comparison options and culture-specific information to influence the comparison, and returns an integer that indicates the relationship of the two strings to each other in the sort order.
        /// </summary>
        /// <param name="comparand">The substring to compare with this instance.</param>
        /// <param name="options">Options to use when performing the comparison (such as ignoring case or symbols).</param>
        /// <param name="culture">The culture that supplies culture-specific comparison information. <c>null</c> is interpreted as the current culture.</param>
        /// <returns>A 32-bit signed integer that indicates the lexical relationship between the two substrings.</returns>
        public int CompareTo( Substring comparand, CompareOptions options = CompareOptions.None, CultureInfo culture = null )
        {
            if( culture.NullReference() )
                culture = CultureInfo.CurrentCulture;

            return culture.CompareInfo.Compare(this.Origin, this.StartIndex, this.Length, comparand.Origin, comparand.StartIndex, comparand.Length, options);
        }
        /// <summary>
        /// Determines the <see cref="CsvFormat"/> based on the specified culture.
        /// </summary>
        /// <param name="culture">The culture to use; or <c>null</c> for the current culture.</param>
        /// <returns>The <see cref="CsvFormat"/> for the culture.</returns>
        public static CsvFormat ChooseFor( CultureInfo culture = null )
        {
            if( culture.NullReference() )
                culture = CultureInfo.CurrentCulture;

            if( string.Equals(culture.NumberFormat.NumberDecimalSeparator, ".", StringComparison.Ordinal) )
                return CsvFormat.International;
            else
                return CsvFormat.Continental;
        }