我只是在对ArraySegment<byte>类进行子MessageEncoder类化时遇到了这种类型.
我现在明白它是给定数组的一部分,取一个偏移量,不可枚举,并且没有索引器,但我仍然无法理解它的用法.有人可以用一个例子解释一下吗?
下午,我需要找出将阵列拆分成较小"块"的最佳方法.
我正在传递大约1200个项目,并且需要将这些项目拆分为更容易处理的100个组,然后我需要将它们传递给处理.
有人可以提出一些建议吗?
我有一个排序数组,我想重新排序,以便先前甚至索引的项目在开头,然后是奇数索引项目.
例如:[a, b, c, d, e, f]=> [a, c, e, b, d, f].
我也将(另外)想要做相反的事情,首先使用奇数索引:
例如:[a, b, c, d, e, f]=> [b, d, f, a, c, e].
我知道我可以创建单独的奇数/偶数数组然后重新合并它们,但性能是关键,我正在尝试找到一个单循环,就地解决方案,避免分配和使用临时数组.
语境:
我递归搜索一个移动的游戏树(带有alpha-beta的minimax)并且我正在尝试实现Lazy SMP,我在其他线程上搜索相同的位置,但尝试以略微不同的顺序移动,将结果保存到共享(换位) )表,以提高主搜索线程的效率.
澄清:
起始数组已经排序,我希望保持偶数/奇数索引内的顺序.也就是说,我不想将这些事情和赔率分组在一起并最终说出来[f, b, d, e, c, a].
另外,我严格按索引值排序,而不是存储在那里的项目.因此,任何涉及项值的搜索谓词的方法都不起作用.
虽然我用C#编写,但我不想使用LINQ,因为我需要将代码移植到没有LINQ的系统.
我希望有一种方法可以循环一次数组并执行一系列项目交换,这样我最终会得到我所描述的排序.我一直在纸上尝试,但还没有任何工作.
澄清2:
我用字母而不是数字更新了示例,并在我向后调整奇数/偶数示例时进行了交换.我想要两个.
最终我试图模拟循环原始数组,但跳过所有其他项目仍然查看每个项目.有两个循环我会做以下事情:
// Case 1: Regular order
for (int i = 0; i < items.Length; i ++)
{
    // Process
}
// Case 2: Even indexes first
for (int i …