首页 > 解决方案 > 检查数组中的多个元素是否包含相同的值

问题描述

例如,我有一个充满随机数的数组,我将把它称为一个骰子。

Random rnd = new Random()
int[] dice=new int [5]
for (int i=0;i<dice.length;i++)
{
dice[i]= rnd.next(1,7)
}

现在为了简单起见,我想问一下我怎样才能知道是否有一个实例中的三个。

标签: c#arraysalgorithmrandom

解决方案


用一个IDictionary<int,int>

var dict = new Dictionary<int,int>();
foreach (int i in dice)
    if(!dict.ContainsKey(i))
        dict.Add(i,1);
    else dict[i]++;

(可选)您可以使用 Linq 获取多次出现的数字

var duplicates = dict.Where( x=>x.Value > 1 )
  .Select(x=>x.Key)
  .ToList();

推荐阅读