/// <summary>
        /// String field filter.
        /// </summary>
        /// <param name="canonicalName">Canonical field name.</param>
        /// <param name="matchType">Filter match type.</param>
        /// <param name="value">Filter match value.</param>
        /// <param name="include">Indicates whether to include the matched items in the results.</param>
        public StringFieldFilter(string canonicalName, StringFieldMatchType matchType, string value, bool include = true)
            : base(canonicalName)
        {
            matchType.Validate(nameof(matchType));

            MatchType = matchType;
            Value     = value ?? string.Empty;
            Include   = include;
        }
 /// <summary>
 /// String field filter.
 /// </summary>
 /// <param name="canonicalContactField">Canonical contact field.</param>
 /// <param name="matchType">Filter match type.</param>
 /// <param name="value">Filter match value.</param>
 /// <param name="include">Indicates whether to include the matched items in the results.</param>
 public StringFieldFilter(CanonicalContactField canonicalContactField, StringFieldMatchType matchType, string value, bool include = true)
     : this(canonicalContactField.Validate(nameof(canonicalContactField)).GetCanonicalName(), matchType, value, include)
 {
 }