public bool AreAtomsCountEqual(IChemicalStack stack) { if (stack is ElementStack elementStack) { return(Equals(elementStack)); } else if (stack is CompoundStack compoundStack && compoundStack.Nodes.Count == 1 && compoundStack.Nodes[0] is ElementStack innerElementStack) { return(Equals(innerElementStack)); } return(false); }
/// <summary> /// Optional method which is used when writing Chemical Compound into string. /// </summary> /// <param name="builder"> Contains currently parsed Stacks. </param> /// <param name="stack"> Currently parsed Stack. Unknown to the library, could be User own implementation. </param> protected virtual void WriteUnknownStack(StringBuilder builder, IChemicalStack stack) { }