Task.WaitAll get returned value

CSharp · Console

/Program.cs

using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;

public class Program
{
	public static void Main()
	{
		var filters = new List<string>
		{
			"A", "B", "C"
		}

		;
		var api = new API();
		var TaskList = new List<Task>();
		foreach (var f in filters)
		{
			var LastTask = new Task<List<String>>(() =>
			{
				return api.GetArray(f);
			}

			);
			LastTask.Start();
			TaskList.Add(LastTask);
		}

		Task.WaitAll(TaskList.ToArray());
		foreach (var t in TaskList)
		{
			// I need to get the List<string> returned in each GetArray and merge them
		}
	}
}

public class API
{
	public List<string> GetArray(string param)
	{
		Thread.Sleep(1000);
		return new List<String>{
			param + "1",
			param + "2",
			param + "3",
		};
	}
}
;