如果在MVC中的第二个数组中找不到,则从First Array中删除

时间:2015-12-18 21:33:37

标签: c# arrays asp.net-mvc

如果在第二个数组中找不到它们,我需要删除第一个数组中的所有值。但是,我无法在C#中在线找到它的命令;虽然我已经找到了其他语言。

这是我的第一个阵列:

string[] EmailList = (from user in db.Users join subscribor in Subscribors on user.UserId equals subscribor orderby user.FirstName select user.EmailAddress).ToArray();

和我的第二个阵列:

string[] TechList = (from user in db.Users join tech in techs on user.UserId equals tech select user.EmailAddress).ToArray();

这是我尝试过的代码:

EmailList = EmailList.Intersect(TechList);

我确实尝试了一些其他的交叉变体,但没有任何效果。在这行代码中,我收到以下错误:

  

无法明确转换类型   'system.collections.generic.IEnumerable to string []

2 个答案:

答案 0 :(得分:3)

您的代码

EmailList = EmailList.Intersect(TechList);

其他方面没问题,但Intersect返回IEnumerable,而您的EmailList类型为string []。您可以将IEnumerable转换为string [],就像这样

EmailList = EmailList.Intersect(TechList).ToArray();

答案 1 :(得分:1)

EmailList.Intersect(TechList)没有返回string[];它返回System.Collections.Generic.IEnumerable,就像它告诉你的那样。尝试添加.ToArray(),如下所示:

EmailList = EmailList.Intersect(TechList).ToArray();