Queue a Coroutine with a List?

I have a script that displays notifications on-screen, the text fades in and out through Coroutines so I need both to of completed before displaying the next. I had the code setup but due to a power outtage I lost the script before I could save.

I was using a List to store all of the notifications and then displaying each one by one, making sure that I wasn’t currently displaying one before playing the next. But I have no idea how I went about this and it’s been frustrating me for the last day.

Does anyone have anything that might point me on the right track?

I haven’t tested the following code, but it gives the idea :

void Start()
{
	StartCoroutine( ProcessNotifications() ) ;
}

IEnumerator ProcessNotifications()
{
	while( true )
	{
		while( notificationsList.Count > 0 )
		{
			yield return StartCoroutine( notificationsList[0] ) ;
			notificationsList.RemoveAt( 0 ) ;
		}
		yield return null ;
	}
}