Summary
Sorts an array according to an array of dependants.
If ItemA depends on ItemB, ItemA will be put later in the returned list.
Syntax
public static List<T> TopologicalSort<T>(IEnumerable<T> collection, Func<T, IEnumerable<T>> getDependancies, IEqualityComparer<T> comparer = null, bool ignoreCycles = false)
Type Parameters
Parameters
Name |
Type |
Description |
collection |
IEnumerable<T> |
The collection to sort. If any element depends on something that isn't present, it will be added automatically. |
getDependancies |
Func<T, IEnumerable<T>> |
A delegate that can return the dependancies of any given element. |
comparer |
IEqualityComparer<T> |
The equality comparer to use. Null will use the default comparer. |
ignoreCycles |
bool |
If false, an System.ArgumentException will be thrown when a cyclic dependancy is encountered |
Return Value