c# - 检查数组中的多个元素是否包含相同的值

标签 c# arrays algorithm random

例如,我有一个数组,其中填充了随机数,我将其称为一个骰子。

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

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

最佳答案

使用 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();

关于c# - 检查数组中的多个元素是否包含相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471881/

相关文章:

c# - 使用 Parallel 在 C# 中优化文件搜索

c# - 不抛出异常(在 Win7 中?)

arrays - Scenekit 在将数组数据传递给 openGL 着色器中的统一数组时出现缓冲区大小错误

c - 空格分隔的文件到结构数组 C

python - 最知名的用户交叉匹配事件算法是什么?

C# 脚本 API 不加载程序集

C# 列表数字排序

arrays - 保存并恢复陷阱状态?管理多个陷阱处理程序的简便方法?

优化二叉搜索树的算法

python - 如果我有素数/指数列表,如何生成数字的所有乘法分区?