C# 检查数组中的多个元素是否包含相同的值
例如,我有一个数组,里面填充了随机数,我将把这个称为骰子C# 检查数组中的多个元素是否包含相同的值,c#,arrays,algorithm,random,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) } Random rnd=new Random() 整数[]骰子=新整数[5] 对于(int i=0;i给出一个完全不同的方法,而不是: Random rnd = new Random(); int[] dice=new
Random rnd = new Random()
int[] dice=new int [5]
for (int i=0;i<dice.length;i++)
{
dice[i]= rnd.next(1,7)
}
Random rnd=new Random()
整数[]骰子=新整数[5]
对于(int i=0;i给出一个完全不同的方法,而不是:
Random rnd = new Random();
int[] dice=new int[5];
for (int i=0;i<dice.length;i++)
{
dice[i]= rnd.next(1,7);
}
Random rnd=new Random();
int[]骰子=新的int[5];
对于(int i=0;i给出一个完全不同的方法,而不是:
Random rnd = new Random();
int[] dice=new int[5];
for (int i=0;i<dice.length;i++)
{
dice[i]= rnd.next(1,7);
}
Random rnd=new Random();
int[]骰子=新的int[5];
for(inti=0;i//准备(基本上是您的代码)
var rnd=新随机数();
var dice=新整数[5];
for(int i=0;id,d=>1/*每个命中计数为1*/);
//显示所有骰子及其计数
foreach(groupedByCount中的变量g)
Console.WriteLine(g.Key+:“+g.Count());
//用3个或更多的骰子显示骰子
foreach(groupedByCount.Where(g=>g.Count()>=3)中的变量g)
Console.WriteLine(“3次或以上:+g.Key”);
//准备(基本上是您的代码)
var rnd=新随机数();
var dice=新整数[5];
for(int i=0;id,d=>1/*每个命中计数为1*/);
//显示所有骰子及其计数
foreach(groupedByCount中的变量g)
Console.WriteLine(g.Key+:“+g.Count());
//用3个或更多的骰子显示骰子
foreach(groupedByCount.Where(g=>g.Count()>=3)中的变量g)
Console.WriteLine(“3次或以上:+g.Key”);
使用i词典
使用i词典
int[]骰子=新骰子[5]
不确定是否compiles@HanjunChen在我的原始代码中,我将骰子作为一个类,因此我的数组是这样的(public dice[]dies=new dice[5];),这就是为什么我在写问题时犯了一个非常小的错误。然而,你在问题中看到的唯一一件事就是这个!非常有用骰子=新骰子[5]
不确定是否compiles@HanjunChen在我的原始代码中,我将骰子作为一个类,因此我的数组是这样的(public dice[]dies=new dice[5];),这就是为什么我在写问题时犯了一个很小的错误。但是你在问题中看到的唯一一件事就是这个!真的很有用
// preparation (basically your code)
var rnd = new Random();
var dice = new int[5];
for (int i=0; i < dice.Length; i++)
{
dice[i]= rnd.Next(1,7);
}
// select dices, grouped by with their count
var groupedByCount = dice.GroupBy(d => d, d => 1 /* each hit counts as 1 */);
// show all dices with their count
foreach (var g in groupedByCount)
Console.WriteLine(g.Key + ": " + g.Count());
// show the dices with 3 or more
foreach (var g in groupedByCount.Where(g => g.Count() >= 3))
Console.WriteLine("3 times or more: " + g.Key);
var dict = new Dictionary<int,int>();
foreach (int i in dice)
if(!dict.ContainsKey(i))
dict.Add(i,1);
else dict[i]++;
var duplicates = dict.Where( x=>x.Value > 1 )
.Select(x=>x.Key)
.ToList();