Exemple #1
0
        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);
        }
Exemple #2
0
 public Reaction(ReactionComponent product)
 {
     Product   = product;
     Reactants = new List <ReactionComponent>();
 }