Private Shared Sub GetCombinationsRec( Of T) ( sources As IList( Of IEnumerable( Of T) ) , chain As T( ) , index As Integer, combinations As ICollection( Of T( ) ) )
For Each element As var In sources( index)
chain( index) = element
If index Is sources.Count - 1 Then
Dim finalChain = New T( chain.Length - 1 ) { }
chain.CopyTo ( finalChain, 0 )
combinations.Add ( finalChain)
Else
GetCombinationsRec( sources := sources, chain := chain, index := index + 1 , combinations := combinations)
End If
Next
End Sub
Public Shared Function GetCombinations( Of T) ( ParamArray enumerables As IEnumerable( Of T) ( ) ) As List( Of T( ) )
Dim combinations = New List( Of T( ) ) ( enumerables.Length )
If enumerables.Length > 0 Then
Dim chain = New T( enumerables.Length - 1 ) { }
GetCombinationsRec( sources := enumerables, chain := chain, index := 0 , combinations := combinations)
End If
Return combinations
End Function
UHJpdmF0ZSBTaGFyZWQgU3ViIEdldENvbWJpbmF0aW9uc1JlYyhPZiBUKShzb3VyY2VzIEFzIElMaXN0KE9mIElFbnVtZXJhYmxlKE9mIFQpKSwgY2hhaW4gQXMgVCgpLCBpbmRleCBBcyBJbnRlZ2VyLCBjb21iaW5hdGlvbnMgQXMgSUNvbGxlY3Rpb24oT2YgVCgpKSkKCUZvciBFYWNoIGVsZW1lbnQgQXMgdmFyIEluIHNvdXJjZXMoaW5kZXgpCgkJY2hhaW4oaW5kZXgpID0gZWxlbWVudAoJCUlmIGluZGV4IElzIHNvdXJjZXMuQ291bnQgLSAxIFRoZW4KCQkJRGltIGZpbmFsQ2hhaW4gPSBOZXcgVChjaGFpbi5MZW5ndGggLSAxKSB7fQoJCQljaGFpbi5Db3B5VG8oZmluYWxDaGFpbiwgMCkKCQkJY29tYmluYXRpb25zLkFkZChmaW5hbENoYWluKQoJCUVsc2UKCQkJR2V0Q29tYmluYXRpb25zUmVjKHNvdXJjZXMgOj0gc291cmNlcywgY2hhaW4gOj0gY2hhaW4sIGluZGV4IDo9IGluZGV4ICsgMSwgY29tYmluYXRpb25zIDo9IGNvbWJpbmF0aW9ucykKCQlFbmQgSWYKCU5leHQKRW5kIFN1YgoKUHVibGljIFNoYXJlZCBGdW5jdGlvbiBHZXRDb21iaW5hdGlvbnMoT2YgVCkoUGFyYW1BcnJheSBlbnVtZXJhYmxlcyBBcyBJRW51bWVyYWJsZShPZiBUKSgpKSBBcyBMaXN0KE9mIFQoKSkKCURpbSBjb21iaW5hdGlvbnMgPSBOZXcgTGlzdChPZiBUKCkpKGVudW1lcmFibGVzLkxlbmd0aCkKCUlmIGVudW1lcmFibGVzLkxlbmd0aCA+IDAgVGhlbgoJCURpbSBjaGFpbiA9IE5ldyBUKGVudW1lcmFibGVzLkxlbmd0aCAtIDEpIHt9CgkJR2V0Q29tYmluYXRpb25zUmVjKHNvdXJjZXMgOj0gZW51bWVyYWJsZXMsIGNoYWluIDo9IGNoYWluLCBpbmRleCA6PSAwLCBjb21iaW5hdGlvbnMgOj0gY29tYmluYXRpb25zKQoJRW5kIElmCglSZXR1cm4gY29tYmluYXRpb25zCkVuZCBGdW5jdGlvbg==
compilation info
Visual Basic.Net Compiler version 0.0.0.5943 (Mono 3.8 - tarball)
Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.
/home/inkCOl/prog.vb (1,16) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (2,5) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (3,8) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (4,5) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (5,7) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (6,9) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (7,16) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (8,7) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (9,22) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (10,9) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (11,6) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (12,8) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (14,14) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (15,5) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (16,4) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (17,6) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (18,21) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (19,8) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (20,8) : error VBNC30203: Identifier expected.
/home/inkCOl/prog.vb (21,13) : error VBNC30203: Identifier expected.
There were 20 errors and 0 warnings.
Compilation took 00:00:00.6205820
stdout