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;
}