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