Skip to content

M_CodeJam_Collections_EnumerableExtensions_TopoSort__2_1

Andrew Koryavchenko edited this page Jun 17, 2018 · 10 revisions

EnumerableExtensions.TopoSort(T, TKey) Method (ICollection(T), Func(T, IEnumerable(T)), Func(T, TKey), IEqualityComparer(TKey))

Performs topological sort on source.

Namespace: CodeJam.Collections
Assembly: CodeJam (in CodeJam.dll) Version: 2.1.0.0

Syntax

C#

public static IEnumerable<T> TopoSort<T, TKey>(
	this ICollection<T> source,
	Func<T, IEnumerable<T>> dependsOnGetter,
	Func<T, TKey> keySelector,
	IEqualityComparer<TKey> keyComparer
)

VB

<ExtensionAttribute>
Public Shared Function TopoSort(Of T, TKey) ( 
	source As ICollection(Of T),
	dependsOnGetter As Func(Of T, IEnumerable(Of T)),
	keySelector As Func(Of T, TKey),
	keyComparer As IEqualityComparer(Of TKey)
) As IEnumerable(Of T)

F#

[<ExtensionAttribute>]
static member TopoSort : 
        source : ICollection<'T> * 
        dependsOnGetter : Func<'T, IEnumerable<'T>> * 
        keySelector : Func<'T, 'TKey> * 
        keyComparer : IEqualityComparer<'TKey> -> IEnumerable<'T> 

Parameters

 

source
Type: System.Collections.Generic.ICollection(T)
Collection to sort.
dependsOnGetter
Type: System.Func(T, IEnumerable(T))
Function that returns items dependent on specified item.
keySelector
Type: System.Func(T, TKey)
Function that returns an item key, wich is used to compare.
keyComparer
Type: System.Collections.Generic.IEqualityComparer(TKey)
Equality comparer for item comparison

Type Parameters

 

T
[Missing documentation for "M:CodeJam.Collections.EnumerableExtensions.TopoSort2(System.Collections.Generic.ICollection{0},System.Func{0,System.Collections.Generic.IEnumerable{0}},System.Func{0,1},System.Collections.Generic.IEqualityComparer{1})"\]</dd><dt>TKey</dt><dd>\[Missing <typeparam name="TKey"/> documentation for "M:CodeJam.Collections.EnumerableExtensions.TopoSort2(System.Collections.Generic.ICollection{0},System.Func{0,System.Collections.Generic.IEnumerable{0}},System.Func{0,1},System.Collections.Generic.IEqualityComparer{1})"]

Return Value

Type: IEnumerable(T)
Topologically sorted list of items in source.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type ICollection(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

See Also

Reference

EnumerableExtensions Class
TopoSort Overload
CodeJam.Collections Namespace

Clone this wiki locally