C#のLINQ Skip()メソッドの使い方をわかりやすく解説
C#のLINQ Skip()メソッドとは
Skip()メソッドを使うと、シーケンス内の指定した数の要素を読み飛ばし、その残りの要素を取得することができます。
まずは、次のような整数型の配列を用意します。
int[] marks = { 80, 55, 79, 99 };ここでは、ラムダ式を使って要素を降順に並べ替えた後、先頭から2つの要素をスキップしてみましょう。
IEnumerable<int> selMarks = marks.AsQueryable().OrderByDescending(s => s).Skip(2);
サンプルコード
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
int[] marks = { 80, 55, 79, 99 };
IEnumerable<int> selMarks = marks.AsQueryable().OrderByDescending(s => s).Skip(2);
Console.WriteLine("最初の2人の生徒の結果をスキップしました...");
foreach (int res in selMarks) {
Console.WriteLine(res);
}
}
}実行結果
最初の2人の生徒の結果をスキップしました... 79 55
処理の流れを確認しましょう。まずOrderByDescending()メソッドにより、点数が降順(99、80、79、55)に並べ替えられます。続いてSkip(2)が先頭の2つの要素(99と80)を読み飛ばすため、最終的には「79」と「55」の2つの値が出力されます。
なお、Skip()メソッドはページネーション(ページ分割)の実装など、「上位N件を除外して残りを表示したい」といった場面でよく活用される便利なLINQ演算子です。Take()メソッドと組み合わせれば、特定の範囲の要素だけを簡単に抽出することもできます。
-
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()メソッドで重複を除去する 重複を除いた要素を取得するには、次のように
-
C#のSkip()メソッドを使って配列の要素をスキップする方法
C#では、LINQが提供するSkip()メソッドを使用することで、配列やコレクションから指定した数の要素を読み飛ばすことができます。このメソッドは System.Linq 名前空間に含まれており、先頭から指定件数分の要素を除外した残りの要素を取得したい場合に非常に便利です。 Skip()メソッドの基本的な使い方 例として、次のような整数型の配列を用意します。 int[] arr = { 10, 20, 30, 40, 50 }; この配列の最初の2つの要素(10と20)をスキップしたい場合は、Skip()メソッドに引数として「2」を渡します。 arr.Skip(2); これにより、30、40、