【问题标题】:Quicker way of comparing/matching an array of integers with LINQ?使用 LINQ 比较/匹配整数数组的更快方法?
【发布时间】:2014-08-08 04:10:44
【问题描述】:

我有以下代码比较 2 个数组中的 6 个整数。使用 LINQ 可以更快地做到这一点吗?也许是Enumerable.Intersect()?我需要它来比较两个数组中的所有 6 个整数。

        int i = 0;
        int counter = 0;            
        bool jackpot = false;
        int[] randomArr = new int[6];                          
        int[] chosenArr = { 1, 2, 3, 4, 5, 6 };
        Random rNum = new Random();

        while (!jackpot)
        {
            i = 0;
            while (i != chosenArr.Length)
            {
                randomArr[i] = rNum.Next(1, 46);
                i += 1;
            }
            i = 0;
            while (i != chosenArr.Length)
            {
                if (!randomArr.Contains(chosenArr[i])) { break; }
                i += 1;
            }
            if (i == chosenArr.Length) { jackpot = true; }
            counter += 1;
        }

编辑:我需要它来匹配两个数组中的整数,即使它们是乱序的。

【问题讨论】:

标签: c# arrays compare


【解决方案1】:

如果他们必须在相同的顺序你可以使用SequenceEqual

bool areEqual = chosenArr.SequenceEqual(randomArr);

如果它们可以按任何顺序排列,那么您可以使用All

bool areEqual = chosenArr.All(randomArr.Contains);

【讨论】:

  • 我试过这个,但我认为假设数字顺序相等,它会起作用吗?我需要它来匹配数字,即使它们不是按顺序排列的?抱歉,误传,我将编辑我的问题。
  • 添加了一个不按顺序执行的方法
  • 太棒了!谢谢你。
猜你喜欢
  • 1970-01-01
  • 2018-04-21
  • 2016-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
相关资源
最近更新 更多