public void Remove(GObject target, RelationType relationType) { int cnt = _items.Count; int i = 0; while (i < cnt) { RelationItem item = _items[i]; if (item.target == target) { item.Remove(relationType); if (item.isEmpty) { item.Dispose(); _items.RemoveAt(i); cnt--; continue; } else { i++; } } i++; } }