【C#】ThenBy()メソッドを使って配列要素を並べ替える方法
C#で配列の要素を並べ替えるには、LINQのOrderBy()メソッドとThenBy()メソッドを組み合わせて使用します。OrderBy()が第一優先の並べ替え条件を指定し、ThenBy()はその結果に対して第二優先の並べ替え条件を追加します。
例として、次のような文字列配列があるとします。
string[] str = { "Sandler", "Jack", "Tom", "Matt", "Henry", "Johnny" };ここでは、ラムダ式を使って条件を設定し、まず文字数の少ない順に並べ替え、さらに同じ文字数の要素同士はアルファベット順に並べ替えてみましょう。これを実現するには、OrderBy()で文字列の長さをキーに指定した後、ThenBy()で文字列そのものをキーとして指定します。
IEnumerable<string> res = str.AsQueryable().OrderBy(alp => alp.Length).ThenBy(alp => alp);
サンプルコード
以下は、ThenBy()メソッドを使用して配列要素を並べ替える完全なプログラム例です。
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
string[] str = { "Sandler", "Jack", "Tom", "Matt", "Henry", "Johnny" };
IEnumerable<string> res = str.AsQueryable().OrderBy(alp => alp.Length).ThenBy(alp => alp);
foreach (string arr in res)
Console.WriteLine(arr);
}
}出力結果
Tom Jack Matt Henry Johnny Sandler
この出力結果から分かるように、要素は文字数が少ない順(3文字〜7文字)に並べ替えられています。また、「Tom」「Jack」「Matt」といった同じ3文字の要素は、ThenBy()による第二条件によってアルファベット順に整列されていることが確認できます。
-
C++プログラム:配列内の各要素の最後の出現を相対的な順序で出力する方法
配列 a[] が与えられたとき、リスト内の各要素について最後に出現したものだけを出力するのが本記事の目的です。ここでは単純に重複要素を削除するだけでなく、各要素が配列内で最後に出現したタイミングに基づき、元の相対的な順序を維持したまま出力する必要があります。例えば、6つの要素を持つ配列 {1, 3, 2, 3, 1, 2} には重複した値が含まれています。この場合、期待される結果は「3 1 2」になります。入力例と出力例Input: a[]={4,2,2,4,1,5,1} Output : 2 4 5 1この例では、「2」はインデックス2で最後に出現し、「4」はインデックス3、「5」はインデッ
-
Pythonで配列(リスト)の要素を逆順に出力するプログラム
Pythonでリストの要素を逆順に出力したい場合、リストを末尾から先頭へ向かって反復処理することで実現できます。range() 関数に開始位置・終了位置・ステップを指定すれば、簡単に逆順のループを作成可能です。 サンプルコード my_list = [21, 32, 43, 54, 75] print(元のリスト : ) for i in range(0, len(my_list)): print(my_list[i]) print(逆順にした後のリスト : ) for i in range(len(my_list)-1, -1, -1): print(my_list[i]) 出