title: How to collect results into array from annotation?
body: <p>Is this possible to collect results from different <code>Case</code> directives and store them in an array field?</p>
  
  <p>Several intances for test:</p>
  
  <pre class="lang-py prettyprint-override"><code>banana = Fruit.objects.create(name='banana', type='tropicals', country_of_import='Africa')
  orange = Fruit.objects.create(name='orange', type='citrus', country_of_import='Spain')
  apple = Fruit.objects.create(name='apple', type='apples', country_of_import='Russia')
  </code></pre>
  
  <p>Here is the Manager that needs to collect all results from cases. <code>ToArray</code> as a possible function that does this work. There is a function with a similar name <code>ArrayAgg</code> according to the <a href="https://docs.djangoproject.com/en/2.2/ref/contrib/postgres/aggregates/#arrayagg" rel="nofollow noreferrer">docs</a>:</p>
  
  <blockquote>
    <p>Returns a list of values, including nulls, concatenated into an array. </p>
  </blockquote>
  
  <p>It works fine with one expression, but not with several:</p>
  
  <pre class="lang-py prettyprint-override"><code>class CustomManager(Manager):
  
      def get_queryset(self):
          query = super().get_queryset().annotate(
              additional_info=ToArray(
                  Case(
                      When(
                          type='tropicals',
                          then=Value('This fruit is tropical...')
                      ),
                      output_field=CharField()
                  ),
                  Case(
                      When(
                          country_of_import='Spain',
                          then=Value('This fruits was grown in Spain'),
                      ),
                      output_field=CharField()
                  )
              )
          )
          return query
  
  </code></pre>
  
  <p>And in the end the result would be:</p>
  
  <pre class="lang-py prettyprint-override"><code>banana.additional_info = ['This fruit is tropical.']
  orange.additional_info = ['This fruits was grown in Spain.']
  </code></pre>
  
  <p>Is this possible to handle with existing function or do I need to write my own?</p>