internal static object UnionArray()

in src/PSRule.Rules.Azure/Data/Template/ExpressionHelpers.cs [628:659]


    internal static object UnionArray(object[] o)
    {
        if (o == null || o.Length == 0)
            return Array.Empty<object>();

        var result = new List<object>();
        for (var i = 0; i < o.Length; i++)
        {
            if (!IsArray(o[i]))
                continue;

            if (o[i] is JArray jArray && jArray.Count > 0)
            {
                for (var j = 0; j < jArray.Count; j++)
                {
                    var element = GetBaseObject(jArray[j]);
                    if (element != null && !result.Contains(element))
                        result.Add(element);
                }
            }
            else if (o[i] is Array array && array.Length > 0)
            {
                for (var j = 0; j < array.Length; j++)
                {
                    var element = array.GetValue(j);
                    if (!result.Contains(element))
                        result.Add(element);
                }
            }
        }
        return result.ToArray();
    }