/// <summary> /// Добавляется пустой(принудительный) переход /// Конечное состояние добавляется в список, если есть такой переход, или создается новый переход /// </summary> /// <param name="from">начальное состояние</param> /// <param name="to">конечное состояние</param> public void Add(int from, int to) { bool changeAdded = false; for (int i = 0; i < emptyChanges.Count; i++) { if (emptyChanges[i].from == from) { changeAdded = true; if (!emptyChanges[i].to.Contains(to)) { emptyChanges[i].to.Add(to); } } } if (!changeAdded) { EmptyChange change = new EmptyChange(); change.from = from; change.to = new List <int>() { to }; emptyChanges.Add(change); } }
/// <summary> /// Добавляются пустые(принудительные) переходы. /// Конечные состояния не дублируются /// </summary> /// <param name="from">начальное состояние</param> /// <param name="to">конечные состояния</param> public void Add(int from, params int[] to) { bool changeAdded = false; for (int i = 0; i < emptyChanges.Count; i++) { if (emptyChanges[i].from == from) { changeAdded = true; for (int j = 0; j < to.Length; j++) { if (!emptyChanges[i].to.Contains(to[j])) { emptyChanges[i].to.Add(to[j]); } } } } if (!changeAdded) { EmptyChange change = new EmptyChange(); change.from = from; change.to = to.ToList(); emptyChanges.Add(change); } }