/// <summary> /// Add a parameter /// </summary> /// <param name="name">Name of parameter, can contain a string array.</param> /// <param name="value">Value</param> /// <example> /// <code> /// ArrayParameterCollection array = new ArrayParameterCollection(); /// array.Add("user[FirstName]", "Jonas"); /// array.Add("user[FirstName]", "Arne"); /// string firstName = array["user"]["FirstName"].Value; // "Arne" is returned /// foreach (string value in array["user"]["FirstName"]) /// Console.WriteLine(value); // each name is displayed. /// </code> /// </example> public void Add(string name, string value) { int pos = name.IndexOf('['); if (pos != -1) { string myName = name.Substring(0, pos); name = name.Remove(0, pos + 1); pos = name.IndexOf(']'); name = name.Remove(pos, 1); ArrayParameterCollection mine = GetItem(myName); if (mine == null) { mine = new ArrayParameterCollection(myName, string.Empty); _items.Add(myName, mine); } mine.Add(name, value); return; } // new parameter ArrayParameterCollection current = GetItem(name); if (current == null) { current = new ArrayParameterCollection(name, value); _items.Add(name, current); return; } // existing current.Values.Add(value); }
public void Test() { ParameterCollection temp = new ParameterCollection(); temp.Add("schedule[day][1][open]", "08:00"); temp.Add("schedule[day][1][close]", "16:00"); temp.Add("schedule[day][2][open]", "07:00"); temp.Add("schedule[day][2][close]", "16:00"); ArrayParameterCollection col = new ArrayParameterCollection(temp); Assert.Equal("07:00", col["schedule"]["day"]["2"]["open"].Value); }