C# 检查数组中的数字是否匹配

C# 检查数组中的数字是否匹配,c#,C#,我正在尝试制作一个程序,生成6个从1到49的唯一号码,一个奖金号码和一个7位数的额外号码。我想检查这6位数中的任何一位是否与当前的乐透号码或奖金号码匹配。我还想检查7个额外的数字是否匹配。我不知道如何比较每个数组中的数字 任何帮助都将不胜感激 static void PLayLotto649() { int[] currentNumbers = ChangeLotto49Numbers(); int[] extraNumbers = ChangeLottoExtraNumbers

我正在尝试制作一个程序,生成6个从1到49的唯一号码,一个奖金号码和一个7位数的额外号码。我想检查这6位数中的任何一位是否与当前的乐透号码或奖金号码匹配。我还想检查7个额外的数字是否匹配。我不知道如何比较每个数组中的数字

任何帮助都将不胜感激

static void PLayLotto649()
{
    int[] currentNumbers = ChangeLotto49Numbers();
    int[] extraNumbers = ChangeLottoExtraNumbers();
    int[] userLottoNumbers = StartingNumbers();
    int[] userExtraNumbers = AutoGenrateExtraNumbers();

    Console.WriteLine($"\nThe current Lotto 6/49 number are: {string.Join(",",currentNumbers)}" );
    Console.WriteLine($"\nThe current Extra number is:{string.Join(",", extraNumbers)}"); 

    Console.WriteLine($"\nYour 6/49 number is: { string.Join(",", userLottoNumbers)}");
    Console.WriteLine($"\nYour lotto Extra number is: { string.Join(",", userExtraNumbes)}");
}

static int[] StartingNumbers()
{
    int temp;
    int[] lotto = new int[7];

    Random rand = new Random();

    for (int i = 0; i < 7; i++)
    {
        temp = rand.Next(1, 50);
        lotto[i] = temp;
    }

    return lotto;
}

static int[] ChangeLottoExtraNumbers()
{
    int temp;
    int[] extra = new int[7];

    Random rand = new Random();

    for (int i = 0; i < 7; i++)
    {
        temp = rand.Next(0, 7);
        extra[i] = temp;
    }
    Console.Write($"the new extra number is: ");
    for (int i = 0; i < 7; i++)
    {
        Console.Write(extra[i] + " ");
    }
    return extra;
}

static int[] AutoGenrateExtraNumbers()
{
    int temp;
    int[] autoExtra = new int[7];

    Random rand = new Random();

    for (int i = 0; i < 7; i++)
    {
        temp = rand.Next(0, 7);
        autoExtra[i] = temp;
    }
    Console.Write($"the new extra number is: ");
    for (int i = 0; i < 7; i++)
    {
        Console.Write(autoExtra[i] + " ");
    }
    return autoExtra;
}

static int[] ChangeLotto49Numbers()
{
    int temp;
    int[] lotto49 = new int[6];

    Random rand = new Random();

    for (int i = 0; i < 6; i++)
    {
        temp = rand.Next(1, 49);
        lotto49[i] = temp;
    }
    Console.Write($"the new lotto Max winning numbers are: ");

    for (int i = 0; i < 6; i++)
    {
        Console.Write(lotto49[i] + " ");
    }

    return lotto49;
}
static void PLayLotto649()
{
int[]currentNumbers=ChangeLotto49Numbers();
int[]extraNumbers=ChangeLottoExtraNumbers();
int[]userLottoNumbers=StartingNumbers();
int[]userExtraNumbers=自动生成ExtraNumbers();
Console.WriteLine($”\n当前乐透6/49号码为:{string.Join(“,”,currentNumbers)});
Console.WriteLine($”\n当前的额外编号是:{string.Join(“,”,extraNumbers)});
Console.WriteLine($“\n您的6/49号是:{string.Join(“,”,userLottoNumbers)}”);
WriteLine($“\n您的乐透额外号码是:{string.Join(“,”,userextranumbers)}”);
}
静态int[]起始编号()
{
内部温度;
整数[]乐透=新整数[7];
Random rand=新的Random();
对于(int i=0;i<7;i++)
{
温度=下一个随机数(1,50);
乐透[i]=临时雇员;
}
回程彩票;
}
静态int[]changelotoExtranumbers()
{
内部温度;
int[]额外=新int[7];
Random rand=新的Random();
对于(int i=0;i<7;i++)
{
温度=下一个随机数(0,7);
额外[i]=温度;
}
Console.Write($”新的额外数字是:);
对于(int i=0;i<7;i++)
{
Console.Write(额外[i]+“”);
}
额外返还;
}
静态int[]自动生成外部数字()
{
内部温度;
int[]autoExtra=新int[7];
Random rand=新的Random();
对于(int i=0;i<7;i++)
{
温度=下一个随机数(0,7);
自动额外[i]=温度;
}
Console.Write($”新的额外数字是:);
对于(int i=0;i<7;i++)
{
Console.Write(autoExtra[i]+“”);
}
返回autoExtra;
}
静态int[]ChangeLotto49Numbers()
{
内部温度;
int[]lotto49=新int[6];
Random rand=新的Random();
对于(int i=0;i<6;i++)
{
温度=下一个随机数(1,49);
乐透49[i]=温度;
}
控制台。写($”新的乐透最大中奖号码是:”);
对于(int i=0;i<6;i++)
{
Console.Write(lotto49[i]+“”);
}
返回乐透49;
}

尝试以下方法:

static bool IsEqualTo(this int[] source, int[] target) {
    if (source == null && target != null || 
        source != null && target == null || 
        source?.Length ?? 0 != target?.Length ?? 0) {
       return false;
    }

    if (source == null && target == null) {
       return true;
    }

    for (var i = 0; i < source.Length; i++) {
     if (source[i] != target[i]) {
       return false;
      }
    }

    return true;
}

或者只需使用
Enumerable.SequenceEqual
@juharr,如果其中一个为空,将抛出,但我明白你的意思:)仅供参考,如果你需要选择6个随机唯一数字,你可以使用Fisher-Yates随机数。基本上,创建一个包含所有可能数字的列表,然后在列表中随机选取一个索引并获取该索引的值,然后将其从列表中删除并重复。您当前拥有的可能会导致重复。
     int[] currentNumbers = ChangeLotto49Numbers();
     int[] extraNumbers = ChangeLottoExtraNumbers();
     if (currentNumbers.IsEqualTo(extraNumbers)) { // do something 
     }