in src/PSRule.Rules.Azure/Data/Template/Functions.cs [377:392]
internal static object First(ITemplateContext context, object[] args)
{
if (args == null || args.Length != 1)
throw ArgumentsOutOfRange(nameof(First), args);
if (args[0] is IMock mock && mock.BaseType != TypePrimitive.String && mock is JToken token)
return token.First;
else if (args[0] is Array avalue)
return avalue.Length > 0 ? avalue.GetValue(0) : null;
else if (args[0] is JArray jArray)
return jArray.Count > 0 ? jArray.First : null;
else if (ExpressionHelpers.TryString(args[0], out var svalue))
return new string(svalue[0], 1);
return null;
}