internal static bool TryArray()

in src/PSRule.Rules.Azure/Data/Template/ExpressionHelpers.cs [557:590]


    internal static bool TryArray(object o, out Array value)
    {
        value = null;
        if (o is Array array)
        {
            value = array;
            return true;
        }
        else if (o is JArray jArray)
        {
            var jr = new JToken[jArray.Count];
            jArray.CopyTo(jr, 0);
            value = jr;
            return true;
        }
        else if (o is IEnumerable<string>)
        {
            value = GetStringArray(o);
            return true;
        }
        else if (o is IEnumerable<long> or IEnumerable<int>)
        {
            value = GetLongArray(o);
            return true;
        }
        else if (o is Mock.MockUnknownObject mockObject && mockObject.Count == 0 && mockObject.TryMutateTo(TypePrimitive.Array, out var replaced) && replaced is JArray jArrayMock)
        {
            var jr = new JToken[jArrayMock.Count];
            jArrayMock.CopyTo(jr, 0);
            value = jr;
            return true;
        }
        return false;
    }