如果在第二个数组中找不到它们,我需要删除第一个数组中的所有值。但是,我无法在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 []
答案 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();