Simple topological sorting for .net that supports cycles in the data to be sorted. Uses Tarjan's algorithm: http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm.
It exports a single static class called TopologicalSort.TopologicalSorter that performs the sorting.