private void Play(string[] tokens) { string command = tokens[0]; string output = string.Empty; var sb = new StringBuilder(); switch (command) { case "Create": this.listyIterator = new ListyIterator<string>(tokens.Skip(1).ToArray()); break; case "Move": Console.WriteLine(this.listyIterator.Move().ToString()); break; case "Print": this.listyIterator.Print(); break; case "HasNext": Console.WriteLine(this.listyIterator.HasNext().ToString()); break; case "PrintAll": foreach (var item in this.listyIterator) { Console.Write(item + " "); } Console.WriteLine(); break; } }
private void SetCurrentIndex(IListyIterator listyIterator) { FieldInfo field = typeof(ListyIterator <string>) .GetFields(BindingFlags.NonPublic | BindingFlags.Instance) .FirstOrDefault(f => f.FieldType == typeof(int)); field.SetValue(listyIterator, 2); }
private IList <string> GetIteratorElements(IListyIterator listyIterator) { FieldInfo field = typeof(ListyIterator <string>) .GetFields(BindingFlags.NonPublic | BindingFlags.Instance) .FirstOrDefault(f => f.FieldType == typeof(IList <string>)); IList <string> instanseField = (IList <string>)field.GetValue(listyIterator); return(instanseField); }
static void Main(string[] args) { IListyIterator <string> listyIterator = null; string input = Console.ReadLine(); while (input != "END") { string[] tokens = input.Split(" ", StringSplitOptions.RemoveEmptyEntries); string command = tokens[0]; try { switch (command) { case "Create": listyIterator = new ListyIterator <string>(tokens.Skip(1).ToList()); break; case "HasNext": Console.WriteLine(listyIterator.HasNext()); break; case "Move": Console.WriteLine(listyIterator.Move()); break; case "Print": listyIterator.Print(); break; } } catch (InvalidOperationException ioe) { Console.WriteLine(ioe.Message); } input = Console.ReadLine(); } }