相关疑难解决方法(0)

ArraySegment <T>类有什么用?

我只是在对ArraySegment<byte>类进行子MessageEncoder类化时遇到了这种类型.

我现在明白它是给定数组的一部分,取一个偏移量,不可枚举,并且没有索引器,但我仍然无法理解它的用法.有人可以用一个例子解释一下吗?

.net c# arrays

89
推荐指数
6
解决办法
4万
查看次数

拆分阵列的最佳方法

下午,我需要找出将阵列拆分成较小"块"的最佳方法.

我正在传递大约1200个项目,并且需要将这些项目拆分为更容易处理的100个组,然后我需要将它们传递给处理.

有人可以提出一些建议吗?

c# arrays split

27
推荐指数
6
解决办法
4万
查看次数

如何在适当的位置重新排序数组以将偶数索引项放在奇数之前?

我有一个排序数组,我想重新排序,以便先前甚至索引的项目在开头,然后是奇数索引项目.

例如:[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 …
Run Code Online (Sandbox Code Playgroud)

c# algorithm smp

6
推荐指数
2
解决办法
886
查看次数

标签 统计

c# ×3

arrays ×2

.net ×1

algorithm ×1

smp ×1

split ×1