public static Rooster operator +(Rooster a, Rooster b)
{
var rooster = new Rooster()
{
Lessen = new List<Les>(),
RoosterFor = a.RoosterFor
};
int lesCountA = a.Lessen.Count, lesCountB = b.Lessen.Count;
int x = 0, y = 0; //x Iterator voor a, y iterator voor b
while(x != lesCountA || y != lesCountB)
{
if (x == lesCountA) //Als X alle lessen verwerkt heeft, en Y nog niet
rooster.Lessen.Add(b.Lessen[y++]);
else if (y == lesCountB) //Als Y alle lessen verwerkt heeft en X nog niet
rooster.Lessen.Add(a.Lessen[x++]);
else if (a.Lessen[x].StartTime > b.Lessen[y].StartTime) //Beide hebben nog niet verwerkte lessen
rooster.Lessen.Add(b.Lessen[y++]);
else
rooster.Lessen.Add(a.Lessen[x++]);
}
return rooster;
}