Esempio n. 1
0
        /// <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);
        }
Esempio n. 6
0
 /// <inheritdoc />
 public IEnumerable<TEdge> InEdges(TVertex vertex)
 {
     if (_vertexInEdges.TryGetValue(vertex, out IEdgeList<TVertex, TEdge> inEdges))
         return inEdges.AsEnumerable();
     throw new VertexNotFoundException();
 }
Esempio n. 7
0
        /// <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)));
        }