using System.Linq; using System.Collections.Generic; using System.Threading.Tasks; public class Model { } public class Tests { Task DeleteClient (Model m) { return null; } public async Task Delete (IEnumerable models) where T : Model { await Task.WhenAll (models.Select ((model) => DeleteClient (model))); } } class O { public static void Main () { new Tests ().Delete (new Model[0]).Wait (); } }