小编aaa*_*aaa的帖子

“foreach”如何迭代二维数组?

我很好奇 C# 中的循环如何foreach迭代多维数组。在下面的代码中,第二个嵌套for循环最初是 a foreach,这会给出循环中放置的音高的不正确位置。我知道很难凭直觉了解它的作用,但它基本上是这样的:将音调放入多维数组中(此处,numVoices 为 2,exLength 为 10),这样您将拥有一个 2x10 的音调数组;然后,MIDI 输出设备会同时播放这些音高行中的每一行。当我使用 aforeach将音高名称放入字符串中以便我可以显示网格内哪个位置的音高时,会foreach以“错误”顺序显示它们(即,[0,3]音高网格不是字符串中打印的内容)。使用嵌套for,这个问题就消失了。我尝试用 s 的二维列表的较小示例int(下面的代码)重新创建它,但这次它给出了“正确”的答案。为什么?

            //put pitches into grid
            //numVoices = 2, exLength = 10 (10 notes long, 2 voices)
            for (int i = 0; i < numVoices; i++ )
            {
                for(int j = 0; j < exLength; j++)
                {
                    //here we generate random pitches in different octaves
                    //depending on the voice (voice 2 is in octave …
Run Code Online (Sandbox Code Playgroud)

c# arrays foreach for-loop multidimensional-array

1
推荐指数
1
解决办法
2634
查看次数

标签 统计

arrays ×1

c# ×1

for-loop ×1

foreach ×1

multidimensional-array ×1