internal static bool TryStringArray()

in src/PSRule.Rules.Azure/Data/Template/ExpressionHelpers.cs [369:399]


    internal static bool TryStringArray(object o, out string[] value)
    {
        value = null;
        if (o is Array array)
        {
            value = new string[array.Length];
            for (var i = 0; i < array.Length; i++)
            {
                if (TryString(array.GetValue(i), out var s))
                    value[i] = s;
            }
        }
        else if (o is JArray jArray)
        {
            value = new string[jArray.Count];
            for (var i = 0; i < jArray.Count; i++)
            {
                if (TryString(jArray[i], out var s))
                    value[i] = s;
            }
        }
        else if (o is IEnumerable<string> enumerable)
        {
            value = enumerable.ToArray();
        }
        else if (o is IEnumerable e)
        {
            value = e.OfType<string>().ToArray();
        }
        return value != null;
    }