试图循环一个数组

时间:2017-12-13 18:46:46

标签: c#

我试图通过一个名为a的数组并过滤数组b中的数组,由于某种原因它给了我这个错误:

  

无法隐式转换类型' System.Collections.Generic.IEnumerable'到' int []'。存在显式转换(您是否错过了演员?)

     public static int[] ArrayDiff(int[] a, int[] b)
     {
        return a.ToList().Where(num => (b.ToList().Contains(num)));
     }

2 个答案:

答案 0 :(得分:3)

2001会返回.Where(),但您的方法会返回IEnumerable<T>。您可以将结果转换为数组以返回它们:

int[]

您可以更改方法签名以返回return a.ToList().Where(num => (b.ToList().Contains(num))).ToArray();

IEnumerable<int>

答案 1 :(得分:0)

您的LINQ查询返回类型IEnumerable<T>的结果。您必须明确将其转换为int[]

变化:

a.ToList().Where(num => (b.ToList().Contains(num)));

为:

a.Where(num => (b.Contains(num))).ToArray();