C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のListから重複要素を削除する方法(Distinctメソッドの使い方)

C#でリスト(List)から重複する要素を削除したい場合は、LINQが提供する Distinct() メソッドを使うのが最も簡単です。この記事では、基本的な使い方から実行例まで、コード付きでわかりやすく解説します。

Distinct()メソッドとは

Distinct()System.Linq 名前空間に含まれる拡張メソッドで、シーケンス内の重複した要素を取り除き、一意な要素だけを返します。戻り値は IEnumerable<T> なので、ToList() を呼び出すことで再びリストとして扱えます。

サンプルリストの作成

まずは、重複を含む整数型のリストを作成します。

List<int> arr1 = new List<int>();
arr1.Add(10);
arr1.Add(20);
arr1.Add(30);
arr1.Add(40);
arr1.Add(50);
arr1.Add(30);  // 重複
arr1.Add(40);  // 重複
arr1.Add(50);  // 重複

重複を削除する方法

重複要素を削除するには、次のように Distinct() メソッドを呼び出し、結果を ToList() で新しいリストに変換します。

List<int> distinct = arr1.Distinct().ToList();

完全なサンプルコード

以下は、処理の全体像を確認できる完全なプログラムです。削除前と削除後のリスト内容をコンソールに出力して比較しています。

using System;
using System.Collections.Generic;
using System.Linq;

public class Demo {
    public static void Main() {
        List<int> arr1 = new List<int>();
        arr1.Add(10);
        arr1.Add(20);
        arr1.Add(30);
        arr1.Add(40);
        arr1.Add(50);
        arr1.Add(30);
        arr1.Add(40);
        arr1.Add(50);

        Console.WriteLine("初期のリスト ...");
        foreach (int i in arr1) {
            Console.WriteLine(i);
        }

        // 重複要素の削除
        List<int> distinct = arr1.Distinct().ToList();

        Console.WriteLine("重複削除後のリスト ...");
        foreach (int res in distinct) {
            Console.WriteLine("{0}", res);
        }
    }
}

実行結果

初期のリスト ...
10
20
30
40
50
30
40
50
重複削除後のリスト ...
10
20
30
40
50

補足:Distinct()を使う際のポイント

  • usingディレクティブが必要: Distinct() を使うには、ファイルの先頭で using System.Linq; を宣言しておく必要があります。
  • 元のリストは変更されない: Distinct() は元のリストを書き換えるのではなく、重複を除去した新しいシーケンスを返します。
  • カスタムクラスの場合: 独自のクラスのオブジェクトに対して使う場合は、等価性の判定方法に注意してください。既定では参照の一致が判定基準になるため、必要に応じて EqualsGetHashCode のオーバーライド、または IEqualityComparer<T> の実装を行いましょう。

このように、Distinct() メソッドを使えば、C#のリストから重複要素をたった1行で簡単に除去できます。データの前処理や集計処理などで頻繁に活用できる便利な機能なので、ぜひ覚えておきましょう。

  1. 【Android】ソート済みリンクリストから重複を削除する方法をわかりやすく解説

    はじめに この記事では、Androidアプリ開発において、ソート済みのリンクリスト(LinkedList)から重複する要素を削除する方法を解説します。Java標準ライブラリのLinkedHashSetを活用すれば、要素の順序を保ったまま重複だけを簡単に除去できます。 実装手順 ステップ1:新規プロジェクトの作成 まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」⇒「New Project」を選択し、必要な項目を入力してプロジェクトを生成してください。 ステップ2:レイアウトファイル(activity_main.xml)の編集 次に、res/layout

  2. 【保存版】Excelでドロップダウンリストの重複を削除する4つの方法

    大量のデータをMicrosoft Excelで扱っていると、ドロップダウンリストを作成したものの、リスト内に重複した値が含まれてしまい困ることがあります。実は、この重複を削除するのはとても簡単で、正しい手順を知っていれば作業時間と手間を大幅に節約できます。本記事では、Excelのドロップダウンリストから重複値を効率的に取り除くための4つの方法を、分かりやすい図解とともに詳しく解説します。 Excelのドロップダウンリストから重複を削除する4つの方法 ここでは、ある国がヨーロッパの3カ国に輸出した果物や野菜に関する情報が記録された大きなワークシートを例にします。データには商品名(Product