public static QNode Q(this IQNodeBuilder q, object value, params object[] content)
        {
            if (value == null)
            {
                return(null);
            }
            var childs = new List <QNode>();

            foreach (var item in content)
            {
                if (item == null)
                {
                    continue;
                }
                var q_item = item as QNode;
                if (q_item != null)
                {
                    childs.Add(q_item);
                    continue;
                }
                var qs_item = item as IEnumerable <QNode>;
                if (qs_item != null)
                {
                    childs.AddRange(qs_item);
                    continue;
                }
                childs.Add(new QNode(item));
            }
            return(new QNode(value, childs.ToArray()));
        }
        public static QNode[] Qs(this IQNodeBuilder q, object value, params object[] content)
        {
            var node = Q(q, value, content);

            if (node == null)
            {
                return(null);
            }
            return(new[] { node });
        }