示例#1
0
        public StringValueComparer(string compareValue, StringCompareType compareType)
        {
            _compareType = compareType;

            if (_compareType.HasFlagFast(StringCompareType.IgnoreCase))
            {
                _compareValue = compareValue.ToUpper();
            }
            else
            {
                _compareValue = compareValue;
            }
        }
        /// <summary>
        /// Get all values of specified property from JSON array.
        /// </summary>
        /// <param name="jo">The JSON array instance.</param>
        /// <param name="identity">The identity of property name.</param>
        /// <param name="compareType">The compare method of identity.</param>
        /// <returns>The string list of got values.</returns>
        public static List <string> GetPropValuesFromJSONArray(JArray ja, string identity, StringCompareType compareType)
        {
            List <string> results = new List <string>();

            foreach (var p in ja)
            {
                if (p.Type == JTokenType.Object)
                {
                    foreach (string s in GetPropValuesFromJSONObject((JObject)p, identity, compareType))
                    {
                        results.Add(s);
                    }
                }
                else if (p.Type == JTokenType.Array)
                {
                    foreach (string s in GetPropValuesFromJSONArray((JArray)p, identity, compareType))
                    {
                        results.Add(s);
                    }
                }
            }

            return(results);
        }
        /// <summary>
        /// Get all values of specified property from JSON object.
        /// </summary>
        /// <param name="jo">The JSON object instance.</param>
        /// <param name="identity">The identity of property name.</param>
        /// <param name="compareType">The compare method of identity.</param>
        /// <returns>The string list of got values.</returns>
        public static List <string> GetPropValuesFromJSONObject(JObject jo, string identity, StringCompareType compareType)
        {
            List <string> results = new List <string>();
            bool          isExist = false;

            foreach (var p in jo)
            {
                isExist = false;

                if (p.Value.Type == JTokenType.Object)
                {
                    foreach (string link in GetPropValuesFromJSONObject((JObject)p.Value, identity, compareType))
                    {
                        results.Add(link);
                    }
                }
                else if (p.Value.Type == JTokenType.Array)
                {
                    foreach (string link in GetPropValuesFromJSONArray((JArray)p.Value, identity, compareType))
                    {
                        results.Add(link);
                    }
                }
                else
                {
                    switch (compareType)
                    {
                    case StringCompareType.Equal:
                        isExist = p.Key.ToString().Equals(identity);
                        break;

                    case StringCompareType.Contain:
                        isExist = p.Key.ToString().Contains(identity);
                        break;

                    default:
                        break;
                    }

                    if (isExist)
                    {
                        results.Add(p.Value.ToString().StripOffDoubleQuotes());
                    }
                }
            }

            return(results);
        }
 public DescendingOrderStringComparer(StringCompareType compareType)
     : base(compareType)
 {
 }
        /// <summary>
        /// Get all values of specified property from JSON object.
        /// </summary>
        /// <param name="jo">The JSON object instance.</param>
        /// <param name="identity">The identity of property name.</param>
        /// <param name="compareType">The compare method of identity.</param>
        /// <returns>The string list of got values.</returns>
        public static List<string> GetPropValuesFromJSONObject(JObject jo, string identity, StringCompareType compareType)
        {
            List<string> results = new List<string>();
            bool isExist = false;

            foreach (var p in jo)
            {
                isExist = false;

                if (p.Value.Type == JTokenType.Object)
                {
                    foreach (string link in GetPropValuesFromJSONObject((JObject)p.Value, identity, compareType))
                    {
                        results.Add(link);
                    }
                }
                else if (p.Value.Type == JTokenType.Array)
                {
                    foreach (string link in GetPropValuesFromJSONArray((JArray)p.Value, identity, compareType))
                    {
                        results.Add(link);
                    }
                }
                else
                {
                    switch (compareType)
                    {
                        case StringCompareType.Equal:
                            isExist = p.Key.ToString().Equals(identity);
                            break;
                        case StringCompareType.Contain:
                            isExist = p.Key.ToString().Contains(identity);
                            break;
                        default:
                            break;
                    }

                    if (isExist)
                    {
                        results.Add(p.Value.ToString().StripOffDoubleQuotes());
                    }
                }
            }

            return results;
        }
        /// <summary>
        /// Get all values of specified property from JSON array.
        /// </summary>
        /// <param name="jo">The JSON array instance.</param>
        /// <param name="identity">The identity of property name.</param>
        /// <param name="compareType">The compare method of identity.</param>
        /// <returns>The string list of got values.</returns>
        public static List<string> GetPropValuesFromJSONArray(JArray ja, string identity, StringCompareType compareType)
        {
            List<string> results = new List<string>();

            foreach (var p in ja)
            {
                if (p.Type == JTokenType.Object)
                {
                    foreach (string s in GetPropValuesFromJSONObject((JObject)p, identity, compareType))
                    {
                        results.Add(s);
                    }
                }
                else if (p.Type == JTokenType.Array)
                {
                    foreach (string s in GetPropValuesFromJSONArray((JArray)p, identity, compareType))
                    {
                        results.Add(s);
                    }
                }
            }

            return results;
        }
示例#7
0
 public StringComparer(StringCompareType compareType)
 {
     CompareType = compareType;
 }
 public static bool HasFlagFast(this StringCompareType value, StringCompareType flag)
 {
     return((value & flag) != 0);
 }