C# LINQのReverseメソッドで配列の要素を逆順に並べ替える方法
C#のLINQでは、Reverseメソッドを使うことで、配列やコレクション内の要素の順序を簡単に反転できます。この記事では、文字型配列を例に、Reverseメソッドの基本的な使い方を解説します。
Reverseメソッドとは
Reverseメソッドは、シーケンス(配列やリストなど)内の要素の順序を逆に並べ替えるためのLINQ演算子です。元のコレクション自体は変更せず、逆順の新しいシーケンスとして結果を返します。
サンプルデータの準備
まず、反転対象となる文字型の配列を用意します。
char[] ch = { 't', 'i', 'm', 'e' };
この配列には「time」という4文字が格納されています。
Reverseメソッドの使い方
配列に対してAsQueryable()メソッドを呼び出してIQueryable型に変換し、その後Reverse()メソッドを適用することで、要素を逆順にした結果を取得できます。
ch.AsQueryable().Reverse();
AsQueryable()を使用する理由は、IEnumerableではなくIQueryableとして扱うことで、Queryable.Reverseが呼び出されるようにするためです。
完全なサンプルコード
以下に、配列の内容を表示してから逆順に並べ替え、その結果を出力する完全なコードを示します。
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
// 元の文字配列
char[] ch = { 't', 'i', 'm', 'e' };
Console.Write("String = ");
foreach(char arr in ch) {
Console.Write(arr);
}
// 要素を逆順に取得
IQueryable<char> res = ch.AsQueryable().Reverse();
Console.Write("\nReversed String = ");
foreach (char c in res) {
Console.Write(c);
}
}
}
実行結果
プログラムを実行すると、次のように元の文字列と逆順の文字列が出力されます。
String = time Reversed String = emit
まとめ
LINQのReverseメソッドを使えば、配列の要素を1行のコードで簡単に逆順にできます。AsQueryable()と組み合わせることでIQueryable型として処理され、元の配列を変更することなく新しい順序のシーケンスを取得できるのがポイントです。文字列の反転だけでなく、数値配列やリストなど、さまざまなコレクションにも応用できます。
-
【初心者向け】C#のLINQ Whereメソッドの使い方を徹底解説!条件に合う要素を抽出する方法
C# LINQのWhereメソッドとは? C#のLINQに用意されているWhereメソッドは、指定した条件(述語:Predicate)に基づいて、コレクションや配列の中から該当する要素だけを抽出(フィルタリング)するためのメソッドです。 データの一覧から特定の条件を満たす項目のみを取り出したい場面は開発現場で非常に多く、WhereメソッドはLINQの中でも特に使用頻度の高い機能といえます。 例えば、以下のように記述すると「70以上の要素」だけを取得できます。 Where((n, index) => n >= 70); このラムダ式では、各要素 n が70以上であるかどうかを判定し、
-
C# LINQ Distinct()メソッドでリストから重複要素を削除する方法
C#のLINQで重複しない要素(一意の値)だけを取得したい場合は、Distinct()メソッドを使用します。このメソッドは、シーケンス内の重複する要素を取り除き、各要素を1度だけ返してくれます。 重複要素を含むリストの準備 まずは、重複した要素を含むリストを用意しましょう。 List<int> points = new List<int> { 5, 10, 5, 20, 30, 30, 40, 50, 60, 70 }; このリストには「5」と「30」がそれぞれ2回含まれています。 Distinct()メソッドで重複を除去する 重複を除いた要素を取得するには、次のように