/// <summary> /// Converts the given edge enumerator to an array of key-value pairs. /// </summary> /// <typeparam name="TEdgeData"></typeparam> /// <param name="enumerator"></param> /// <returns></returns> public static KeyValuePair <uint, TEdgeData>[] ToKeyValuePairs <TEdgeData>(this EdgeEnumerator <TEdgeData> enumerator) where TEdgeData : IGraphEdgeData { enumerator.Reset(); var pairs = new List <KeyValuePair <uint, TEdgeData> >(); while (enumerator.MoveNext()) { pairs.Add(new KeyValuePair <uint, TEdgeData>(enumerator.Neighbour, enumerator.EdgeData)); } return(pairs.ToArray()); }
/// <summary> /// Converts the given edge enumerator to an array of key-value pairs. /// </summary> /// <typeparam name="TEdgeData"></typeparam> /// <param name="enumerator"></param> /// <returns></returns> public static KeyValuePair <uint, KeyValuePair <TEdgeData, ICoordinateCollection> >[] ToKeyValuePairsAndShapes <TEdgeData>(this EdgeEnumerator <TEdgeData> enumerator) where TEdgeData : IGraphEdgeData { enumerator.Reset(); var pairs = new List <KeyValuePair <uint, KeyValuePair <TEdgeData, ICoordinateCollection> > >(); while (enumerator.MoveNext()) { pairs.Add(new KeyValuePair <uint, KeyValuePair <TEdgeData, ICoordinateCollection> >(enumerator.Neighbour, new KeyValuePair <TEdgeData, ICoordinateCollection>(enumerator.EdgeData, enumerator.Intermediates))); } return(pairs.ToArray()); }