using System.Collections.Generic;

//Třída představující Sekci v ini souboru, obsahuje seznam klíčů

public class IniReaderWriterSection {

	public string Title { get; set; }											//vlastnost- název sekce
	private List<IniReaderWriterKey> listofkeys;		//seznam klíčů

	//Konstruktor, inicializuje název a vytvoří nový prázdný seznam
	public IniReaderWriterSection(string aTitle) {
		Title = aTitle;
		listofkeys = new List<IniReaderWriterKey>();
	}

	public List<IniReaderWriterKey> GetListOfKeys()
	{
		return listofkeys;
	}

	public void AddKey(string aKey, string aValue)
	{
		IniReaderWriterKey newkey = new IniReaderWriterKey (aKey, aValue);
		listofkeys.Add(newkey);
	}

	public void ChangeKey(string aKey, string aValue)
	{
		int index = -1;
		foreach (IniReaderWriterKey key in listofkeys)
		{
			index++;
			if (key.Key == aKey)
			{
				listofkeys[index].Value = aValue;
				return;
			}
		}

		throw new InvalidIniDataException(System.String.Format("Key {0} does not exist.", aKey));
	}

	public void DeleteKey(string aKey)
	{
		int index = -1;
		foreach (IniReaderWriterKey key in listofkeys)
		{
			index++;
			if (key.Key == aKey)
			{
				listofkeys.RemoveAt(index);
				return;
			}
		}
	}

	public int GetNumberOfKeys ()
	{
		return listofkeys.Count;
	}



	//přepsání ToString metody, vypisuje název sekce v hranatých závorkách
	public override string ToString ()
	{
		return '[' + Title + ']';
	}
}