C#のorderbyキーワードでリストを昇順・降順に並べ替える方法
C#のorderbyキーワードとは
C#のorderbyキーワードは、LINQ(統合言語クエリ)のクエリ式で使用できる演算子の一つで、コレクションやリストの要素を昇順または降順に並べ替えるために使います。デフォルトでは昇順にソートされ、降順にしたい場合はdescendingキーワードを指定します。
サンプルリストの作成
まず、並べ替えの対象となる文字列のリストを作成しましょう。
List<string> myList = new List<string>();
myList.Add("truck");
myList.Add("bus");
myList.Add("bicycle");
myList.Add("motorbike");
orderbyで降順に並べ替える
orderbyの後に並べ替えの基準(ここでは文字列の長さelement.Length)を指定し、さらにdescendingキーワードを付けることで、要素を長さの降順にソートできます。
var myLen = from element in myList
orderby element.Length descending
select element;
完全なコード例
昇順と降順の両方で並べ替えを行い、結果をコンソールに出力する完全なプログラムは以下のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
class Demo {
static void Main() {
List<string> myList = new List<string>();
myList.Add("truck");
myList.Add("bus");
myList.Add("bicycle");
myList.Add("motorbike");
// 昇順(文字列の長さ順)に並べ替え
var myLen = from element in myList
orderby element.Length
select element;
Console.WriteLine("Ascending order...");
foreach (string str in myLen) {
Console.WriteLine(str);
}
// 降順(文字列の長さの逆順)に並べ替え
myLen = from element in myList
orderby element.Length descending
select element;
Console.WriteLine("Descending order...");
foreach (string str in myLen) {
Console.WriteLine(str);
}
}
}
実行結果
Ascending order... bus truck bicycle motorbike Descending order... motorbike bicycle truck bus
ポイントまとめ
orderbyキーワードは、LINQクエリ式の中で並べ替えを行うために使用します。- デフォルトは昇順です。明示的に指定したい場合は
ascendingを付けることも可能です。 - 降順に並べ替えるには、基準となる値の後に
descendingキーワードを指定します。 - 上記の例では文字列そのものではなく
element.Length(文字列の長さ)を基準にしているため、「bus(3文字)」から「motorbike(9文字)」のように長さ順に出力されます。
-
C#のabstractキーワード徹底解説!抽象クラスの基本と実装例
C#のabstractキーワードとは C#におけるabstractキーワードは、抽象クラスや抽象メンバーを定義するために使用される修飾子です。抽象クラスには、実装を持たない抽象メソッドと、通常の実装を持つ非抽象メソッドの両方を含めることができます。 重要なポイントとして、抽象クラスは直接インスタンス化できません。そのため、抽象クラスを利用するには、必ず派生クラスを作成し、そこで抽象メンバーを実装する必要があります。 抽象クラスの定義例 以下は、抽象クラス「Vehicle」と抽象メソッド「display()」を定義した例です。 public abstract class Vehicle {
-
C#の「this」キーワードとは?基本の使い方と実例をわかりやすく解説
C#における「this」キーワードは、クラスの現在のインスタンス(自分自身)を参照するために使用されます。特に、メソッドのパラメータ名とクラスのフィールド名が同じ場合に、両者を明確に区別したいときに役立ちます。また、「this」キーワードにはもう一つ重要な用途があります。それは、同じクラス内のあるコンストラクタから別のコンストラクタを呼び出すという使い方です。thisキーワードの基本的な使い方ここでは、学生の情報(ID、名前、年齢、科目)を管理する例を通して、「this」キーワードの役割を見ていきましょう。コンストラクタ内で現在のクラスのフィールドを参照するために、次のように「this」を使用