[C# Collections] 配列、リストの並び順を反転する

配列、リストの要素の並び順を反転させる方法です。

スポンサーリンク

for文を使いインデックスで逆から取得する

こんな感じです。

using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
        // 配列要素の並び順を反転
        int[] ary = new int[] { 1, 2, 3, 4, 5, };
        for (int i = ary.Length - 1; i >= 0; i--) {
            Console.WriteLine(ary[i]);
        }

        // リスト要素の並び順を反転
        List<int> list = new List<int> { 1, 2, 3, 4, 5 };
        for (int i = list.Count - 1; i >= 0; i--) {
            Console.WriteLine(list[i]);
        }
    }
}
5
4
3
2
1
5
4
3
2
1
スポンサーリンク

Array.Reverseメソッドで配列を反転させる

Array.Reverseメソッドの引数に反転させたい配列を指定します。
この方法は指定した配列そのものの順番が反転します。

using System;
class Program
{
    public static void Main()
    {
        // 配列要素の並び順を反転
        int[] ary = new int[] { 1, 2, 3, 4, 5, };
        Console.WriteLine($"    元の配列:[ {string.Join(" ", ary)} ]");
        Array.Reverse(ary);
        Console.WriteLine($"反転した配列:[ {string.Join(" ", ary)} ]");
    }
}
    元の配列:[ 1 2 3 4 5 ]
反転した配列:[ 5 4 3 2 1 ]
スポンサーリンク

各インスタンスのReverseメソッドで反転させる

配列、リストそれぞれのインスタンスのReverseメソッドを使って順番を反転させることができます。

配列のインスタンスのReverseメソッドは戻り値が反転された配列になり、
リストのインスタンスのReverseメソッドはそのリスト自体の並び順が反転されます。

using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
    public static void Main()
    {
        // 配列要素の並び順を反転
        int[] ary = new int[] { 1, 2, 3, 4, 5, };
        Console.WriteLine($"逆の配列:[ {string.Join(" ", ary.Reverse())} ]");
        Console.WriteLine($"元の配列:[ {string.Join(" ", ary)} ]");

        // リスト要素の並び順を反転
        List<int> list = new List<int> { 1, 2, 3, 4, 5 };
        Console.WriteLine($"Reverse前のリスト:[ {string.Join(" ", list)} ]");
        list.Reverse();
        Console.WriteLine($"Reverse後のリスト:[ {string.Join(" ", list)} ]");
    }
}
逆の配列:[ 5 4 3 2 1 ]
元の配列:[ 1 2 3 4 5 ]
Reverse前のリスト:[ 1 2 3 4 5 ]
Reverse後のリスト:[ 5 4 3 2 1 ]

C# プログラミング講座に戻る

コメント

タイトルとURLをコピーしました