using System; using System.Collections.Generic; namespace BismNormalizer.TabularCompare.TabularMetadata { /// /// Represents a collection of CalculationItem objects. /// public class CalculationItemCollection : List { /// /// Find an object in the collection by name. /// /// /// CalculationItem object if found. Null if not found. public CalculationItem FindByName(string name) { foreach (CalculationItem calculationItem in this) { if (calculationItem.Name == name) { return calculationItem; } } return null; } /// /// A Boolean specifying whether the collection contains object by name. /// /// /// True if the object is found, or False if it's not found. public bool ContainsName(string name) { foreach (CalculationItem calculationItem in this) { if (calculationItem.Name == name) { return true; } } return false; } /// /// A Boolean specifying whether the collection contains object by name searching without case sensitivity. /// /// /// True if the object is found, or False if it's not found. public bool ContainsNameCaseInsensitive(string name) { foreach (CalculationItem calculationItem in this) { if (calculationItem.Name.ToUpper() == name.ToUpper()) { return true; } } return false; } /// /// Returns a collection of CalculationItem objects filtered by the parent table's name. /// /// /// CalculationItemCollection public CalculationItemCollection FilterByTableName(string tableName) { CalculationItemCollection returnCalculationItems = new CalculationItemCollection(); foreach (CalculationItem calculationItem in this) { if (calculationItem.TableName == tableName) { returnCalculationItems.Add(calculationItem); } } return returnCalculationItems; } /// /// Removes an object from the collection by its name. /// /// /// True if the object was removed, or False if was not found. public bool RemoveByName(string name) { foreach (CalculationItem calculationItem in this) { if (calculationItem.Name == name) { this.Remove(calculationItem); return true; } } return false; } } }