private void RefreshRulePanels() { var rulePanels = ContentPanel.components.OfType <RulePanel>().ToArray(); foreach (var rulePanel in rulePanels) { if (EditObject.ContainsRule(rulePanel.Rule)) { rulePanel.Refresh(); } else { RemoveRulePanel(rulePanel); } } foreach (var rule in EditObject.Rules) { if (!rulePanels.Any(r => r.Rule == rule)) { AddRulePanel(rule); } } }