我只是希望能够对 BatchedJoinBlock ( http://msdn.microsoft.com/en-us/library/hh194683.aspx ) 的结果进行排序,以便不同目标的不同结果保持在一起。我会解释!一些伪代码中的示例:
Dim batchedJoin = New BatchedJoinBlock(Of String, object)(4)
batchedJoin.Target1.Post("String1Target1")
batchedJoin.Target2.Post(CType(BuildIt, StringBuilder1))
batchedJoin.Target1.Post("String1Target2")
batchedJoin.Target2.Post(CType(BuildIt, StringBuilder2))
Dim results = batchedJoin.Receive()
'This sorts one result...
Dim SortByResult = results.Item1.OrderBy(Function(item) item.ToString, New NaturalStringComparer)
基本上我有一个字符串和一个对象,上面的 SortByResult 变量完全按照我希望它们排序的方式对字符串进行排序。我正在寻找一种方法来将 target2 中曾经位于相同索引号的对象按相同顺序排列。例如,如果“String1Target1”更改顺序,我想以某种方式可靠地将其与“StringBuilder1”一起引用/配对。实际的最终结果只需要将对象(target2)按照被排序的字符串(target1)指定的顺序进行排序。就像是:
Dim EndResult = results.Item2.OrderBy(strings in target1)
但我很乐意采取中间解决方案!我也尝试过使用带有字符串作为键的字典(results.Item2.ToDictionary)(这也是一个很好的解决方案),但是在适当的上下文中使用lamba表达式有点超出我的理解。实际上,我可以通过列表或其他内容分几个步骤执行此操作,但我正在尝试获得更高效/学习的东西,而且似乎有很多默认选项与我只是没有的联合块的结果有足够的使用经验。提前感谢您提供的任何帮助!