public bool SetType(string id, string _type) // Запись типа данного идентификатора { if (SearchIsExist(id)) // Есть ли такой идентификатор в таблице { // Запись атрибута variable_table.TryGetValue(id, out ATTRIBUTS atr); if (atr.type == null) { variable_table[id] = new ATTRIBUTS { change = atr.change, value = atr.value, type = _type } } ; else { //Console.WriteLine("Данному элементу уже задан тип"); return(false); } return(true); } else { Console.WriteLine("Данного элемента нет в таблице"); return(false); } }
public void WriteInfo(string name) // Выводит информацию по идентификатору { if (SearchIsExist(name)) { ATTRIBUTS atr = variable_table[name]; Console.WriteLine($"Имя: {name}. Тип: {atr.type}. Имеет значение? {atr.value}. Можно изменять значение? {atr.change}"); } else { Console.WriteLine("Данного элемента нет в таблице"); } }
public bool SetChange(string id, bool _change) // Запись может ли быть изменен данный идентификатор { if (SearchIsExist(id)) // Есть ли такой идентификатор в таблице { // Запись атрибута variable_table.TryGetValue(id, out ATTRIBUTS atr); variable_table[id] = new ATTRIBUTS { change = _change, value = atr.value, type = atr.type }; return(true); } else { Console.WriteLine("Данного элемента нет в таблице"); return(false); } }
// what_search определяет по каким атрибутам производить поиск. // Первый символ определяет искать ли по ATTRIBUTS.type (1 - искать; 0 - не искать) // Второй символ определяет искать ли по ATTRIBUTS.value (1 - искать; 0 - не искать) // Третий символ определяет искать ли по ATTRIBUTS.change (1 - искать; 0 - не искать) public List <string> SearchAttribut(string type, bool value, bool change, bool[] what_search) // Поиск индентификаторов по атрибутам. { List <string> identifiers = new List <string>(); foreach (string key in variable_table.Keys) { ATTRIBUTS atr_in_table = variable_table[key]; // Атрибуты данного ключа таблицы string find_key = key; if (what_search[0]) // Искать ли по типу? { if (atr_in_table.type != type) { find_key = null; } } if (what_search[1]) // Искать ли по значению(имеется или нет)? { if (atr_in_table.value != value) { find_key = null; } } if (what_search[2]) // Искать по изменению(может меняться значение или нет) { if (atr_in_table.change != change) { find_key = null; } } if (find_key != null) // Если нашелся идентификатор соответствующий атрибутам { identifiers.Add(find_key); } } return(identifiers); }