1次元インデックスを使用した多次元配列へのアクセス

マイク・ド・クラーク

以下のコードを参照してください。1次元のインデックスを持つ多次元配列にアクセスする方法は何ですか。Foreachはそれを行うことができます。ええ、私は知っています、yieldのIEnumerableはインデックスと同じではありません。foreachを使用して新しい配列を作成する必要がありますか?または、新しいアレイを作成せずにそれを行うことはできますか?

    int[,] myArray = new int[2, 2];
    myArray[0,0] = 1;
    myArray[1,1] = 2;
    myArray[0,0] = 3;
    myArray[1,1] = 4;
    foreach (var value in myArray)
    {
        Console.Write(value);
    }

    var valueAtIndex = myArray[2]; //Won't compile, error: Wrong number of indices inside []; expected 2
GyörgyKőszeg

値を読み取るだけでなくforeach、配列トラバースするのと同じ順序で値を設定する場合は、次の一般的なインデクサークラスを使用できます。

public class ArrayIndexer
{
    readonly int totalLength;
    readonly int lastIndexLength;
    readonly int[] lengths;
    readonly int[] lowerBounds;
    int current;
    readonly int[] currentZeroBased;

    public ArrayIndexer(int[] lengths, int[] lowerBounds)
    {
        lastIndexLength = lengths[lengths.Length - 1];
        totalLength = lengths[0];
        for (int i = 1; i < lengths.Length; i++)
        {
            totalLength *= lengths[i];
        }
        this.lengths = lengths;
        this.lowerBounds = lowerBounds;
        currentZeroBased = new int[lengths.Length];
        current = -1;
    }

    public bool MoveNext()
    {
        current++;
        if (current != 0)
        {
            int currLastIndex = current % lastIndexLength;
            currentZeroBased[currentZeroBased.Length - 1] = currLastIndex;
            if (currLastIndex == 0)
            {
                for (int i = currentZeroBased.Length - 2; i >= 0; i--)
                {
                    currentZeroBased[i]++;
                    if (currentZeroBased[i] != lengths[i])
                        break;
                    currentZeroBased[i] = 0;
                }
            }
        }
        return current < totalLength;
    }

    public int[] Current
    {
        get
        {
            int[] result = new int[currentZeroBased.Length];
            for (int i = 0; i < result.Length; i++)
            {
                result[i] = currentZeroBased[i] + lowerBounds[i];
            }
            return result;
        }
    }
}

そして、配列全体を設定するために次のように使用できます。

int[,] myArray = new int[2, 2];
ArrayIndexer arrayIndexer = new ArrayIndexer(new[] {2, 2}, new[] {0, 0});
int i = 0;
while (arrayIndexer.MoveNext())
{
    myArray.SetValue(++i, arrayIndexer.Current);
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

負のインデックスを使用した多次元配列アクセス

分類Dev

Pythonで1次元配列を使用した多次元配列のインデックス作成

分類Dev

ポインタを介した多次元配列へのアクセス

分類Dev

ポインタ表記を使用したCの多次元配列へのアクセス

分類Dev

Numpy-多次元配列の1つの次元にインデックスを付ける

分類Dev

多次元配列の複数の次元に別の次元のインデックスを付ける-NumPy / Python

分類Dev

多次元インデックスを使用した変数のFortranへの格納

分類Dev

インデックス配列を使用した多次元numpy配列のインデックス付け

分類Dev

2次元配列をスライスして列インデックスの1次元配列で埋めます

分類Dev

1次元インデックスの多次元インデックスへのテンソル拡張

分類Dev

インデックス配列からのインデックスのタプルを使用した多次元配列のインデックス作成-NumPy / Python

分類Dev

1つの軸に沿って適用されるargminインデックスを使用した多次元配列のインデックス付け

分類Dev

JSONを介したPHPからJavaScriptへのインデックス付き多次元配列

分類Dev

多次元配列のインデックスを削除して、多くの1次元配列のリストに変換しますPHP

分類Dev

他のインデックス値を使用した単一の多次元配列チェックphp

分類Dev

Rインデックス配列。3次元の行列を使用して3次元配列にインデックスを付ける方法

分類Dev

インデックスを使用したJavascriptソート多次元配列

分類Dev

map を使用して多次元配列の最初のインデックスを返す

分類Dev

複数次元のインデックスなし配列へのアクセス

分類Dev

次元Nのnumpy配列を形状の1次元配列(N、)でインデックス付けする方法

分類Dev

Numpy:1次元配列の要素のインデックスを2次元配列として取得します

分類Dev

多次元配列へのアクセス、Laravel

分類Dev

PHP - 多次元配列へのアクセス

分類Dev

多次元配列へのインデックス付け

分類Dev

NaNを含むインデックス配列を使用したnumpy設定の多次元配列

分類Dev

変数を使用してインデックスを格納する多次元配列の要素にアクセスする方法はありますか

分類Dev

インデックスのベクトルの関数を使用してRのn次元配列にアクセスする

分類Dev

numpyで間接インデックスを使用して多次元配列を合計するための高速な方法

分類Dev

多次元インデックススライス後の配列の次元

Related 関連記事

  1. 1

    負のインデックスを使用した多次元配列アクセス

  2. 2

    Pythonで1次元配列を使用した多次元配列のインデックス作成

  3. 3

    ポインタを介した多次元配列へのアクセス

  4. 4

    ポインタ表記を使用したCの多次元配列へのアクセス

  5. 5

    Numpy-多次元配列の1つの次元にインデックスを付ける

  6. 6

    多次元配列の複数の次元に別の次元のインデックスを付ける-NumPy / Python

  7. 7

    多次元インデックスを使用した変数のFortranへの格納

  8. 8

    インデックス配列を使用した多次元numpy配列のインデックス付け

  9. 9

    2次元配列をスライスして列インデックスの1次元配列で埋めます

  10. 10

    1次元インデックスの多次元インデックスへのテンソル拡張

  11. 11

    インデックス配列からのインデックスのタプルを使用した多次元配列のインデックス作成-NumPy / Python

  12. 12

    1つの軸に沿って適用されるargminインデックスを使用した多次元配列のインデックス付け

  13. 13

    JSONを介したPHPからJavaScriptへのインデックス付き多次元配列

  14. 14

    多次元配列のインデックスを削除して、多くの1次元配列のリストに変換しますPHP

  15. 15

    他のインデックス値を使用した単一の多次元配列チェックphp

  16. 16

    Rインデックス配列。3次元の行列を使用して3次元配列にインデックスを付ける方法

  17. 17

    インデックスを使用したJavascriptソート多次元配列

  18. 18

    map を使用して多次元配列の最初のインデックスを返す

  19. 19

    複数次元のインデックスなし配列へのアクセス

  20. 20

    次元Nのnumpy配列を形状の1次元配列(N、)でインデックス付けする方法

  21. 21

    Numpy:1次元配列の要素のインデックスを2次元配列として取得します

  22. 22

    多次元配列へのアクセス、Laravel

  23. 23

    PHP - 多次元配列へのアクセス

  24. 24

    多次元配列へのインデックス付け

  25. 25

    NaNを含むインデックス配列を使用したnumpy設定の多次元配列

  26. 26

    変数を使用してインデックスを格納する多次元配列の要素にアクセスする方法はありますか

  27. 27

    インデックスのベクトルの関数を使用してRのn次元配列にアクセスする

  28. 28

    numpyで間接インデックスを使用して多次元配列を合計するための高速な方法

  29. 29

    多次元インデックススライス後の配列の次元

ホットタグ

アーカイブ