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()メソッドで重複を除去する
重複を除いた要素を取得するには、次のように記述します。
points.AsQueryable().Distinct();
サンプルコード
それでは、実際に動作する完全なサンプルコードを見てみましょう。
using System;
using System.Linq;
using System.Collections.Generic;
class Demo {
static void Main() {
List<int> points = new List<int> { 5, 10, 5, 20, 30, 30, 40, 50, 60, 70 };
// リストから重複要素を除去
IEnumerable<int> res = points.AsQueryable().Distinct();
foreach (int a in res) {
Console.WriteLine(a);
}
}
}
出力結果
5 10 20 30 40 50 60 70
実行結果を見ると、「5」と「30」がそれぞれ1回ずつしか表示されておらず、重複が正しく除去されていることが確認できます。このように、Distinct()メソッドを使えば、数値リストだけでなく文字列のコレクションなど、さまざまなシーケンスから簡単に一意の要素を取得できます。
-
C#でシーケンスから重複のない要素を取得する方法
C#では、LINQのDistinct()メソッドを使うことで、シーケンス(コレクション)から重複する要素を取り除き、一意な要素だけを簡単に取得できます。この記事では、Listに含まれる重複した値を除去して、個別の要素のみを抽出するプログラムを紹介します。 シーケンスと要素の準備 まず、シーケンスとしてリストを作成し、要素を追加します。ここでは、意図的に重複した値を含む整数型のリストを用意しました。 List<int> ID = new List<int> { 120, 111, 250, 111, 120, 300, 399, 450 }; このリストには「111」と
-
【初心者向け】C#のLINQ Whereメソッドの使い方を徹底解説!条件に合う要素を抽出する方法
C# LINQのWhereメソッドとは? C#のLINQに用意されているWhereメソッドは、指定した条件(述語:Predicate)に基づいて、コレクションや配列の中から該当する要素だけを抽出(フィルタリング)するためのメソッドです。 データの一覧から特定の条件を満たす項目のみを取り出したい場面は開発現場で非常に多く、WhereメソッドはLINQの中でも特に使用頻度の高い機能といえます。 例えば、以下のように記述すると「70以上の要素」だけを取得できます。 Where((n, index) => n >= 70); このラムダ式では、各要素 n が70以上であるかどうかを判定し、