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

C#で整数リストから重複を検出して表示する方法

整数のリストから重複する値を検出して表示するには、ContainsKeyメソッドを使用する方法が便利です。Dictionaryのキーに各整数を登録しながら出現回数をカウントすることで、効率的に重複を特定できます。

整数配列の準備

まず、重複を含む整数の配列を定義します。

int[] arr = {
   3,
   6,
   3,
   8,
   9,
   2,
   2
};

Dictionaryで出現回数をカウントする

次に、Dictionary<int, int>コレクションを使用して、各整数の出現回数を記録します。配列の各要素について、すでにキーが存在する場合はカウントを1つ増やし、存在しない場合は新しくキーを追加してカウントを1に設定します。

サンプルコード

重複する整数を検出するコードの完全な例は以下の通りです。

using System;
using System.Collections.Generic;

namespace Demo {
   public class Program {
      public static void Main(string[] args) {
         int[] arr = {
            3,
            6,
            3,
            8,
            9,
            2,
            2
         };
         var d = new Dictionary<int, int>();
         foreach(var res in arr) {
            if (d.ContainsKey(res))
               d[res]++;
            else
               d[res] = 1;
         }
         foreach(var val in d)
            Console.WriteLine("{0} occurred {1} times", val.Key, val.Value);
      }
   }
}

実行結果

3 occurred 2 times
6 occurred 1 times
8 occurred 1 times
9 occurred 1 times
2 occurred 2 times

コードの解説

このプログラムの動作を簡単に説明します。

最初のforeachループでは、配列の各要素を順番に処理します。ContainsKeyメソッドで、その整数がすでにDictionaryのキーとして登録されているかを確認し、登録済みであれば対応する値(出現回数)をインクリメント、未登録であれば新しいエントリとして追加します。

2番目のforeachループでは、Dictionaryに格納された各キーと値のペアを出力します。出現回数が2以上の整数が重複している値です。この例では「3」と「2」がそれぞれ2回出現していることがわかります。

この方法の計算量はO(n)であり、要素数に比例して処理が完了するため、大量のデータに対しても効率的に動作します。

  1. 【Python】リストから重複要素を削除する5つの方法を徹底解説

    リスト(List)はPythonにおける最も重要なデータ構造の一つであり、日常的なプログラミングからWeb開発まで、ほぼすべてのコードで利用されています。使用頻度が高い分、その操作をマスターすることへの需要も高く、各種操作に関する知識は必須といえます。 中でも「リストから重複要素を削除する」処理は、データの前処理やユニークな値の抽出など、数多くの場面で応用されるため、その実装方法を把握しておくと非常に役立ちます。 本記事では、Pythonでリストの重複を除去する代表的な5つの方法を、コード例と実行結果とともにわかりやすく解説します。 方法1:素朴な方法(forループ) 最も基本的なアプローチ

  2. Pythonでリストから重複要素を削除する方法を徹底解説

    重複した要素を含むリストが与えられたとき、重複を取り除いた新しいリストを作成するのが本記事のテーマです。初心者の方にも理解しやすいよう、基本的なアルゴリズムの手順から実際のコードまで順を追って解説していきます。 実行例 入力::[2,3,4,3,4,6,78,90] 出力::[2,3,4,6,78,90] アルゴリズム 重複要素を削除するための基本的な手順は以下の通りです。 元となるリストを作成する。 空の新しいリストを用意する。 元のリストの各要素を先頭から順番に走査する。 その要素が新しいリストにまだ存在しないかどうかを判定する。 存在しない場合のみ、新しいリストへ要素を追加する。