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