C#で配列の末尾から指定した数の要素を取得する方法(TakeLastメソッド)
配列の末尾から要素を取得したい場合は、TakeLast() メソッドを使用します。このメソッドは、シーケンスの最後から指定した数の要素だけを取り出し、残りを無視してくれる便利なLINQ拡張メソッドです。
まずは、配列を宣言して初期化します。
int[] prod = { 110, 290, 340, 540, 456, 698, 765, 789};次に、この配列から末尾の3つの要素を取得してみましょう。
IEnumerable<int> units = prod.AsQueryable().TakeLast(3);
ここでは、AsQueryable() で配列をクエリ可能な形式に変換し、その後 TakeLast(3) を呼び出すことで、最後の3つの要素を取得しています。
それでは、完全なコードを見てみましょう。
サンプルコード
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
int[] prod = { 110, 290, 340, 540, 456, 698, 765, 789};
// 末尾の3つの値を取得
IEnumerable<int> units = prod.AsQueryable().TakeLast(3);
foreach (int res in units) {
Console.WriteLine(res);
}
}
}実行結果
698 765 789
実行すると、配列の末尾にある「698」「765」「789」の3つの値が出力されます。
補足
TakeLast() メソッドは、.NET Core 2.0 以降および .NET Standard 2.1 以降で利用可能です。従来の .NET Framework では使用できないため、注意が必要です。また、先頭から要素を取得したい場合は Take() メソッドを使用します。
-
Pythonでリストの各要素より右側にある小さい要素の数を返すプログラム
問題概要 数値のリスト nums が与えられたとします。このとき、元のリストの各要素について、その要素より右側に存在する小さい要素の個数を求め、それらを並べた新しいリストを作成する問題を考えてみましょう。 例えば、入力が nums = [4, 5, 9, 7, 2] の場合、出力は [1, 1, 2, 1, 0] になります。これは次のような理由によるものです。 4 の右側にある小さい要素は 1 個(2) 5 の右側にある小さい要素は 1 個(2) 9 の右側にある小さい要素は 2 個(7 と 2) 7 の右側にある小さい要素は 1 個(2) 2 の右側には小さい要素が存在しないため 0 個
-
【Python】ソート済みリストからk番目に欠けている数を効率的に求める方法
ソートされた重複のない整数リスト nums と整数 k が与えられたとき、リストの最初の要素を基準にして、k番目(0始まりのインデックス)に相当する欠落した数を見つける問題を考えてみましょう。 問題の例 例えば、nums = [5,6,8,10,11]、k = 1 という入力の場合を確認します。このリストには「7」と「9」という2つの数が欠けています。7がインデックス0(1番目)の欠落数、9がインデックス1(2番目)の欠落数に対応するため、k = 1 のときの出力は 9 となります。 解決のためのアプローチ この問題は、隣り合う要素同士の差に注目することで解けます。各間隔にいくつの数が欠け