public IEnumerable<StyleRule> Flatten()
{
var flatrules = Rules.SelectMany(r => r.Flatten());
foreach(var selector in Selectors)
{
var r = MemberwiseClone() as StyleRule;
r.Selectors = new List<StyleSelector> {selector};
r.Rules = new List<StyleRule>();
yield return r;
foreach(var rule in flatrules)
{
var rule2 = rule.MemberwiseClone() as StyleRule;
var selector2 = rule2.Selectors.First();
rule2.Selectors = new List<StyleSelector> { new StyleSelector { Name = selector.Name + " " + selector2.Name} };
yield return rule2;
}
}
}