private YamlNode CreateArrayNodeSub(Array array, int i, long[] indices)
{
var type= array.GetType();
var element = type.GetElementType();
var sequence = seq();
if ( i == 0 ) {
sequence.Tag = TypeNameToYamlTag(type);
AppendToAppeared(array, sequence);
}
if ( element.IsPrimitive || element.IsEnum || element == typeof(decimal) )
if ( array.Rank == 1 || ArrayLength(array, i+1) < 20 )
sequence.Properties["Compact"] = "true";
for ( indices[i] = 0; indices[i] < array.GetLength(i); indices[i]++ )
if ( i == array.Rank - 1 ) {
var n = ObjectToNode(array.GetValue(indices), type.GetElementType());
sequence.Add(n);
} else {
var s = CreateArrayNodeSub(array, i + 1, indices);
sequence.Add(s);
}
return sequence;
}