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どちらでも同様にカウントできます。