我正在开发彩票应用程序:
我已经可以打印出两个数组了,但我不知道如何比较它们以查看用户是否获胜以及有多少个数字。
namespace ConsoleApp14
{
internal class Program
{
static void Main(string[] args)
{
int[] userBingo = new int[5];
Console.WriteLine("Var vänligt och skriv in 5 tal mellan 1-25: ");
for (int i = 0; i < userBingo.Length; i++)
{
int inputBingo;
do
{
string input = Console.ReadLine();
if (!int.TryParse(input, out inputBingo))
{
Console.WriteLine("Felaktig inmatning! Var vänlig och försök igen.");
continue;
}
if (inputBingo < 1 || inputBingo > 25)
{
Console.WriteLine("Var vänlig och skriv in ett tal mellan 1-25. ");
continue;
}
userBingo[i] = inputBingo;
break;
} while (true);
}
Console.WriteLine("Här är dina tal!");
foreach (int i in userBingo)
{
Console.WriteLine(i);
}
Console.WriteLine();
Console.WriteLine("Och de vinnande talen är: ");
int[] winningNumber = new int[5];
Random random = new Random();
for (int i = 0; i < winningNumber.Length; i++)
{
winningNumber[i] = random.Next(1,26);
}
foreach (int i in winningNumber)
{
Console.WriteLine(i);
}
}
}
}
我实际上不确定要尝试什么,我最近才开始学习数组并知道如何创建它们,但不比较它们。
如果顺序很重要,您可以使用sequenceEquals
userBingo.SequenceEquals(winningNumber);
如果数字可以按任何顺序排列,您可以先对两个列表进行排序以确保顺序一致:
Array.Sort(userBingo);
Array.Sort(winningNumber);
userBingo.SequenceEquals(winningNumber);
如果保证数字是唯一的,你也可以使用 HashSet:
userBingo.HashSet().SetEquals(winningNumber);
请注意,您的老师可能期望您自己编写一些东西,而不是简单地使用库方法来完成所有繁重的工作。进行不区分顺序比较的一种方法是:
histogram[userBingo[i]]+=1