private int CalculateHash() { unchecked { var hc = Ingredients.Length; foreach (var i in Ingredients) { hc = hc * 314159 + i.GetHashCode(); } hc ^= OverridePrecedence?.GetHashCode() ?? 0; return((Product.GetHashCode() * 397) ^ hc); } }
private bool Equals(ProductionRule other) { return(Product.Equals(other.Product) && Ingredients.SequenceEqual(other.Ingredients) && OverridePrecedence.Equals(other.OverridePrecedence)); }