Need help refactoring this basic async-await loop
===

So I have a business object that supports a "Save"-method which does some IO to some device. I then have a list of those objects which I want to save asynchronously in a batch. My code now looks like this:


        public async Task Save()
        {
            foreach (var element in Elements)
            {
                await element.Save();
            }
        }    

Now this results in `n` number of awaits, and I know that each await causes a bit of CPU overhead. I want to eliminate this and only have one single await. How do I refactor to achieve this?