我试图通过一个名为a的数组并过滤数组b中的数组,由于某种原因它给了我这个错误:
无法隐式转换类型' System.Collections.Generic.IEnumerable'到' int []'。存在显式转换(您是否错过了演员?)
public static int[] ArrayDiff(int[] a, int[] b)
{
return a.ToList().Where(num => (b.ToList().Contains(num)));
}
答案 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();