データ操作

[C#] Listや配列の重複要素をカウントする

2023年2月28日

Listや配列の重複要素をカウントするサンプルです。
(同じ要素をまとめて、要素ごとの個数を取得します)

サンプル

まずは配列版です。

例1)配列の重複要素をカウントする

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

// 配列
int[] arr = new int[] {1, 2, 3, 1, 2, 1 };

// 重複要素をカウントしてDictionaryに格納する
Dictionary<int, int> dic = arr.GroupBy(x => x)
  .ToDictionary(x => x.Key, y => y.Count());

// コンソールに出力する
Console.WriteLine(String.Join(", ", dic));

結果

[1, 3], [2, 2], [3, 1]

要素「1」が3個、要素「2」が2個、要素「3」が1個と分かります。

 

List版は以下です。

例2)Listの重複要素をカウントする

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

// List
List<int> list = new List<int> { 1, 2, 3, 1, 2, 1 };

// 重複要素をカウントしてDictionaryに格納する
Dictionary<int, int> dic = list.GroupBy(x => x)
  .ToDictionary(x => x.Key, y => y.Count());

// コンソールに出力する
Console.WriteLine(String.Join(", ", dic));

結果は配列版と同じです。

備考

  • 配列、Listどちらでも同様にカウントできます。

関連記事

-データ操作
-, ,