Exemple #1
0
            void Walk(string loc, string expr, object value, string path, WalkCallback callback)
            {
                if (_system.IsPrimitive(value))
                {
                    return;
                }

                if (_system.IsArray(value))
                {
                    var list = (IList)value;
                    for (int i = 0; i < list.Count; i++)
                    {
                        callback?.Invoke(i, loc, expr, value, path);
                    }
                }
                else
                {
                    if (_system.IsObject(value))
                    {
                        foreach (string key in _system.GetMembers(value))
                        {
                            callback?.Invoke(key, loc, expr, value, path);
                        }
                    }
                }
            }
Exemple #2
0
            void Walk(string loc, string expr, object value, string path, WalkCallback callback)
            {
                if (_system.IsPrimitive(value))
                {
                    return;
                }

                if (_system.IsArray(value))
                {
                    var list = (IList)value;
                    for (var i = list.Count - 1; i >= 0; i--)
                    {
                        callback(i, loc, expr, value, path);
                    }
                }
                else if (_system.IsObject(value))
                {
                    foreach (var key in _system.GetMembers(value).Reverse())
                    {
                        callback(key, loc, expr, value, path);
                    }
                }
            }