private List <Reaction> ParseInput(string input) { var parsedReactions = new List <Reaction>(); var inputLines = input.Split('\n').ToArray(); inputLines.ForEach(s => { var splitReaction = s.Split(new[] { " => " }, StringSplitOptions.RemoveEmptyEntries); var productDetails = splitReaction[1].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var reactantDetails = splitReaction[0].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(r => r.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)).ToList(); var product = new ReactionComponent(productDetails[1], int.Parse(productDetails[0])); var thisReaction = new Reaction(product); reactantDetails.ForEach(r => { var reactant = new ReactionComponent(r[1], int.Parse(r[0])); thisReaction.Reactants.Add(reactant); }); parsedReactions.Add(thisReaction); }); return(parsedReactions); }
public Reaction(ReactionComponent product) { Product = product; Reactants = new List <ReactionComponent>(); }