Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace CSharpPreparation
- {
- public class LambdaExpression
- {
- public LambdaExpression(string selector, string selectorObject, string property)
- {
- this.Selector = selector;
- this.DefaultSelectorObject = selectorObject;
- this.CurrentSelectorObject = selectorObject;
- this.Property = property;
- }
- public string Selector { get; }
- public string DefaultSelectorObject { get; }
- public string CurrentSelectorObject { get; set; }
- public string Property { get; set; }
- public override string ToString()
- {
- return $"{this.Selector} => {this.CurrentSelectorObject}{this.Property}";
- }
- }
- public class Program
- {
- private static void Main(string[] args)
- {
- string input = Console.ReadLine();
- Dictionary<string, LambdaExpression> expressions = new Dictionary<string, LambdaExpression>();
- while (input != "lambada")
- {
- if (input == "dance")
- {
- foreach (var expression in expressions)
- {
- expression.Value.CurrentSelectorObject += expression.Value.DefaultSelectorObject;
- }
- }
- else
- {
- string[] tokens = input.Split(new[] { ' ', '=', '>', '.' }, StringSplitOptions.RemoveEmptyEntries);
- string selector = tokens[0];
- string selectorObject = $"{tokens[1]}.";
- string property = tokens[2];
- if (expressions.ContainsKey(selector))
- {
- if (expressions[selector].CurrentSelectorObject == selectorObject)
- {
- expressions[selector].Property = property;
- }
- }
- else
- {
- expressions.Add(selector, new LambdaExpression(selector, selectorObject, property));
- }
- }
- input = Console.ReadLine();
- }
- foreach (var expression in expressions)
- {
- Console.WriteLine(expression.Value);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement