/// <inheritdoc /> public bool ContainsEdge(TEdge edge) { if (edge == null) { throw new ArgumentNullException(nameof(edge)); } return(_vertexEdges.TryGetValue(edge.Source, out IEdgeList <TVertex, TEdge> edges) && edges.Contains(edge)); }
public bool TryGetOutEdges(TVertex v, out IEnumerable <TEdge> edges) { IEdgeList <TVertex, TEdge> list; if (vertexOutEdges.TryGetValue(v, out list)) { edges = list; return(true); } edges = null; return(false); }
/// <inheritdoc /> public IEnumerable <TEdge> OutEdges(TVertex vertex) { if (_vertexOutEdges.TryGetValue(vertex, out IEdgeList <TVertex, TEdge> outEdges)) { return(outEdges.AsEnumerable()); } throw new VertexNotFoundException(); }
/// <inheritdoc /> public bool TryGetOutEdges(TVertex vertex, out IEnumerable <TEdge> edges) { if (vertex == null) { throw new ArgumentNullException(nameof(vertex)); } if (_vertexOutEdges.TryGetValue(vertex, out IEdgeList <TVertex, TEdge> outEdges)) { edges = outEdges; return(outEdges.Count > 0); } edges = null; return(false); }
/// <inheritdoc /> public bool ContainsEdge(TEdge edge) { if (edge == null) { throw new ArgumentNullException(nameof(edge)); } if (!_adjacentEdges.TryGetValue(edge.Source, out IEdgeList <TVertex, TEdge> adjacentEdges)) { return(false); } foreach (TEdge adjacentEdge in adjacentEdges) { if (EqualityComparer <TEdge> .Default.Equals(adjacentEdge, edge)) { return(true); } } return(false); }
/// <inheritdoc /> public IEnumerable<TEdge> InEdges(TVertex vertex) { if (_vertexInEdges.TryGetValue(vertex, out IEdgeList<TVertex, TEdge> inEdges)) return inEdges.AsEnumerable(); throw new VertexNotFoundException(); }
/// <inheritdoc /> public bool ContainsEdge(TEdge edge) { if (edge == null) { throw new ArgumentNullException(nameof(edge)); } return(_adjacentEdges.TryGetValue(edge.Source, out IEdgeList <TVertex, TEdge> adjacentEdges) && adjacentEdges.Any(adjacentEdge => EqualityComparer <TEdge> .Default.Equals(adjacentEdge, edge))); }