public IEnumerable <T> GetColumns() => _columns; // return just its own columns // return all columns of a column subset (inherited + its own) // just for test purposes public IEnumerable <T> GetColumnsIncludeInherited() { var allColumns = _parent?.GetColumns() as List <T> ?? new List <T>(); foreach (var column in _columns) { allColumns.Add(column); } return(allColumns); }
public void SetParentSubset(IColumnSubsetInfo <T> parent) { if (GetParentSubset() != null) { throw new Exception($"Subset {this} already has a parent subset."); } _parent = parent; // when assigning a parent, remove all columns inherited from this parent, so a 'derived' object contains only its own columns _columns = _columns.Except(parent.GetColumns()).ToList(); }