.NET Fiddle

CSharp · Console

/Program.cs

using System;
using System.Threading.Tasks;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
					
public class Program
{
	public async static Task Main()
	{
		var foo = new Foo();
		foo.Load();
		await foo.LoadAsync();
		
		foreach (var carSync in foo.CarsSync)
			Console.WriteLine(carSync.Text);
		
		foreach (var carSync in foo.CarsAsync)
			Console.WriteLine(carSync.Text);
	}
}

public class Foo
{
	public IList<Cars> CarsSync { get; set; }
	public IList<Cars> CarsAsync { get; set; }
	
	public void Load()
	{
		CarsSync = GetCars(true).Result.Values.ToList();
	}
	public async Task LoadAsync()
	{
		var dictionary = await GetCars(false);
		CarsAsync = dictionary.Values.ToList();
	}
	
	public Task<Dictionary<long, Cars>> GetCars(bool isSync)
	{
		return Task.Run(() => {
			return new Dictionary<long, Cars>(){
				{1, new Cars($"Car 1 | IsSync = {isSync}")},
				{2, new Cars($"Car 2 | IsSync = {isSync}")},
			};
		});
	}	
}

public class Cars
{
	public string Text { get; set; }
	public Cars(string text)
	{
		Text = text;
	}
}
;