static Expression CreateArray(TypeName elementType, UniqueNames names, IEnumerable <Expression> elements) { var list = names.GetUniqueName(); names = names.Reserve(list); return(new CallLambda( new Lambda( Signature.Func(TypeName.Parse("Uno.Object")), new[] { new BindVariable(list, new Instantiate(ObjectList.Parameterize(elementType))), }, elements .Select(e => (Statement) new CallDynamicMethod(new ReadVariable(list), new TypeMemberName("Add"), e)) .Concat(new [] { new Return(new CallDynamicMethod(new ReadVariable(list), new TypeMemberName("ToArray"))) })))); }