C# Array.Reverseの使い方

この記事のポイント

C#における配列の反転操作は、Array.Reverseメソッドを使用することで効率的に実現できます。以下の重要なポイントを押さえることで、適切な配列操作が可能になります。

  • Array.Reverseメソッドによる配列要素の順序反転操作
  • 元の配列を直接変更する破壊的な操作の特徴と注意点
  • 文字列、数値、オブジェクトなどさまざまなデータ型での活用方法

これらの知識により、データの並び順を変更する処理を簡潔に実装できるようになります。

目次

Array.Reverseとは?

C#のArray.Reverseは、配列の要素の順序を逆順に並び替える静的メソッドです。このメソッドは.NET Frameworkが提供する標準的な機能で、配列の最初の要素を最後に、最後の要素を最初に移動させる処理を一括で実行します。

このメソッドの特徴は、元の配列を直接変更する破壊的操作である点です。そのため、新しい配列を作成せずに効率的にメモリを使用できます。さらに、文字列、数値、オブジェクトなどあらゆるデータ型の配列に対応しており、データの並び順を変更するさまざまな場面で活用可能です。

【関連】
C#をもっと詳しく学ぶならpaizaラーニング

基本構文

Array.Reverseメソッドの基本的な構文は非常にシンプルです。最も基本的な形式では、引数として配列を一つ指定するだけで、配列全体の要素を逆順に並び替えることができます。

using System; public class Program { public static void Main(string[] args) { // 文字列配列を初期化 string[] animals = { "イヌ", "ネコ", "ウサギ" }; // 配列の要素の順序を逆転 Array.Reverse(animals); // 結果をカンマ区切りで表示 Console.WriteLine(string.Join(", ", animals)); } }

出力結果

ウサギ, ネコ, イヌ

部分的な反転を行いたい場合は、開始インデックスと要素数を指定することも可能です。

using System; public class Program { public static void Main(string[] args) { int[] numbers = { 1, 2, 3, 4, 5 }; // インデックス1から3要素を反転 Array.Reverse(numbers, 1, 3); Console.WriteLine(string.Join(", ", numbers)); } }

出力結果

1, 4, 3, 2, 5

これらの構文により、配列の全体または一部分を柔軟に反転させることができます。

実用例

以下では、C#のArray.Reverseメソッドの実用例をサンプルコードとして紹介します。

それぞれの例では、異なるシナリオでの活用方法を具体的に示し、実際のプログラミング場面で役立つ実装パターンを学習できます。これらのサンプルを通じて、Array.Reverseの柔軟性と実用性を体感していただけます。

文字列配列の反転

文字列配列での基本的な反転操作を示します。ペット店での動物リストの並び替えを想定した例です。

using System; public class Program { public static void Main(string[] args) { string[] petShop = { "チワワ", "ゴールデンレトリバー", "ペルシャネコ", "ハムスター" }; // 反転前の配列を「 → 」区切りで表示 Console.WriteLine("反転前: " + string.Join(" → ", petShop)); // Array.Reverse() メソッドで配列の全要素を反転 Array.Reverse(petShop); // 反転後の配列を「 → 」区切りで表示 Console.WriteLine("反転後: " + string.Join(" → ", petShop)); } }

出力結果

反転前: チワワ → ゴールデンレトリバー → ペルシャネコ → ハムスター
反転後: ハムスター → ペルシャネコ → ゴールデンレトリバー → チワワ

数値配列の並び替え

動物園での動物の体重データを反転させる例です。数値配列での反転処理を実践できます。

using System; public class Program { public static void Main(string[] args) { int[] animalWeights = { 5, 15, 25, 45, 80 }; string[] animalNames = { "ウサギ", "ネコ", "イヌ", "ヒツジ", "ブタ" }; // animalWeights の順序を逆転 Array.Reverse(animalWeights); // animalNames の順序を逆転 Array.Reverse(animalNames); // 逆転後の配列の要素を結合して表示 for (int i = 0; i < animalNames.Length; i++) { Console.WriteLine($"{animalNames[i]}: {animalWeights[i]}kg"); } } }

出力結果

ブタ: 80kg
ヒツジ: 45kg
イヌ: 25kg
ネコ: 15kg
ウサギ: 5kg

部分的な配列反転

配列の特定部分のみを反転させる例です。動物の列の一部分だけを並び替える場面を想定しています。

using System; public class Program { public static void Main(string[] args) { string[] zoo = { "ライオン", "トラ", "クマ", "ゾウ", "キリン", "シマウマ" }; Console.WriteLine("元の順序: " + string.Join(", ", zoo)); // インデックス2から3の要素を反転 Array.Reverse(zoo, 2, 3); Console.WriteLine("部分反転後: " + string.Join(", ", zoo)); } }

出力結果

元の順序: ライオン, トラ, クマ, ゾウ, キリン, シマウマ
部分反転後: ライオン, トラ, キリン, ゾウ, クマ, シマウマ

二次元配列での活用

二次元配列の各行を個別に反転させる処理例です。複数のグループに分けられた動物リストを扱います。

using System; public class Program { public static void Main(string[] args) { string[][] animalGroups = { new string[] { "イヌ", "ネコ", "ウサギ" }, new string[] { "ライオン", "トラ", "ヒョウ" } }; // 各内部配列をループで処理 foreach (var group in animalGroups) { Array.Reverse(group); Console.WriteLine(string.Join(" - ", group)); } } }

出力結果

ウサギ - ネコ - イヌ
ヒョウ - トラ - ライオン

リストとの組み合わせ

Listから配列に変換してからArray.Reverseを適用する例です。動的なコレクションでの活用方法を示します。

using System; using System.Collections.Generic; // List<T> を使うために必要 using System.Linq; // ToArray() を使うために必要 public class Program { public static void Main(string[] args) { List<string> farmAnimals = new List<string> { "ウシ", "ブタ", "ニワトリ", "ヤギ" }; // 1. リストを配列に変換 string[] farmArray = farmAnimals.ToArray(); // 2. Array.Reverse() で配列の要素の順序を逆転 Array.Reverse(farmArray); Console.WriteLine("反転された農場動物:"); Console.WriteLine(string.Join(" | ", farmArray)); } }

出力結果

反転された農場動物:
ヤギ | ニワトリ | ブタ | ウシ

条件付き配列反転

配列の要素数に応じて反転処理を制御する例です。安全な配列操作の実装パターンを学習できます。

using System; public class Program { public static void Main(string[] args) { string[] seaAnimals = { "イルカ", "クジラ", "アザラシ" }; // 配列の要素数が1より大きいかチェック if (seaAnimals.Length > 1) { Array.Reverse(seaAnimals); Console.WriteLine("海の動物 (反転済み): " + string.Join(", ", seaAnimals)); } } }

出力結果

海の動物 (反転済み): アザラシ, クジラ, イルカ

カスタムオブジェクト配列の処理

独自のクラスオブジェクトを含む配列での反転操作例です。より実践的なプログラミング場面を想定しています。

using System; public class Program { public static void Main(string[] args) { // 匿名型の配列(NameとType)を初期化 var pets = new[] { new { Name = "ポチ", Type = "イヌ" }, new { Name = "タマ", Type = "ネコ" }, new { Name = "ピーター", Type = "ウサギ" } }; Array.Reverse(pets); // 逆転後の配列をループで処理 foreach (var pet in pets) { Console.WriteLine($"{pet.Name} ({pet.Type})"); } } }

出力結果

ピーター (ウサギ)
タマ (ネコ)
ポチ (イヌ)

まとめ

C#のArray.Reverseは配列の要素順序を効率的に反転させる強力なメソッドです。このメソッドを適切に活用することで、データの並び替え処理を簡潔かつ高速に実装できます。

Array.Reverseの活躍する場面

  • データの表示順序を逆転させる処理での活用
  • アルゴリズム実装における配列操作での利用
  • ユーザーインターフェースでの並び順変更機能

重要なポイント

  • 元配列を直接変更する破壊的操作の理解
  • 部分反転機能による柔軟な配列操作の実現
  • メモリ効率に優れた高速な配列処理の実装

Array.Reverseは、シンプルな構文でありながら多様な場面で威力を発揮する汎用性の高いメソッドです。基本的な全配列反転から、インデックスを指定した部分反転まで、さまざまなニーズに対応できます。メモリ使用量を抑えつつ高速な処理が実現できるため、パフォーマンス重視のアプリケーションにも有効です。配列の並び順を制御する際の標準的な手法として実際のプロジェクトにおいても活用されており、習得しておくと非常に役立ちます。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. C#のリファレンス記事一覧
  4. C# Array.Reverseの使い方