public void Disconnect(Neural other, string connToType, string connFromType = null) { var connToTypeStr = connToType; var connFromTypeStr = connFromType; this.ConnectedTo.Get(connToTypeStr).Remove(other); if (connFromType == null) return; other.ConnectedFrom.Get(connFromTypeStr).Remove(this); }
/// <summary> /// 连接两个神经元 /// </summary> /// <param name="other">另一个要连接的神经元</param> /// <param name="connToType">第一个神经元连向第二个神经元连接类型</param> /// <param name="connFromType">第二个神经元连向第一个神经元的连接类型</param> public void Connect(Neural other, string connToType, string connFromType = null) { var connToTypeStr = connToType; var connFromTypeStr = connFromType; this.ConnectedTo.SetDefault(connToTypeStr).Add(other); if (connFromType == null) return; other.ConnectedFrom.SetDefault(connFromTypeStr).Add(this); }
public List<string> GetConnections(Neural targetNeu) { var result = new List<string>(); foreach (var klstp in this.ConnectedTo) { if (klstp.Value.Contains(targetNeu)) result.Add(klstp.Key); } foreach (var klstp in this.ConnectedFrom) { if (klstp.Value.Contains(targetNeu)) result.Add(klstp.Key); } return result; }